我正在使用来自 Github 的 Luhn 库。Luhn 类有更多方法,但我只对“生成”和“有效?”感兴趣。方法。
m = Luhn.generate(9) # generates a random number like [123456789] or [098765432]
Luhn.valid?(m) # returns true or false based on Luhn checksum passing
但我不希望生成的数字以“0”开头。
那么我该如何输入我的 ruby 脚本:
- 丢弃生成的以 开头的数字
"0"
。 - 生成另一个数字并再次检查,直到
m[0]
非零。 - 在生成的数字上运行
valid?()
:如果为假,则生成另一个非零数字,直到为真。 - 将有效的 9 位数字返回给呼叫者代码