我正在尝试创建一个程序来验证基于luhn算法的10到12位长数序列,但是我的程序一直告诉我每个数字都是无效的,即使它们不是.
这个数字应该是有效的,但我的代码不这么认为: 8112189876
这个号码不应该是有效的,我的程序同意这个号码,因为它认为每个号码都是无效的: 8112189875
这是我的代码:
static void luhn(){
System.out.print("Enter number to validate:\n");
String pnr = input.nextLine();
int length = pnr.length();
int sum = 0;
for (int i = 1, pos = length - 1; i < 10; i++, pos--){
char tmp = pnr.charAt(pos);
int num = tmp - 0
int product;
if (i % 2 != 0){
product = num * 1;
}
else{
product = num * 2;
}
if (product > 9)
product -= 9;
sum+= product; …Run Code Online (Sandbox Code Playgroud)