1
我一直在尝试使用Luhn算法在java中制作一个检查数字,并且我来到这里是为了完全沮丧。我处于第一步,它将所有数字相加在一起(每增加一位数字就加倍,如果加倍后变为大于9,则减去9),但我无法在任何接近总和应为的位置得到答案。如果我输入“11”作为字符串,则输出总和应为3时输出为138.我不知道我的代码中出现了什么问题,我想知道是否有更多经验的人可以帮助我。制作Luhn的检查数字 - Java
import javax.swing.JOptionPane;
public class Assignment
{ public static void main (String []args)
{
String UserNum;
char c;
int secondnum, ctwo;
secondnum = 0;
ctwo = 0;
UserNum = JOptionPane.showInputDialog("Please enter a number: ");
int len, i;
len = UserNum.length();
i = 0;
System.out.println(UserNum);
while (i < len) {
c = UserNum.charAt(i);
System.out.println(c);
i++;
if (i%2==0){
ctwo = c*2;
if (ctwo > 9) {
ctwo = ctwo - 9;
secondnum = secondnum + ctwo;
}
else { secondnum = secondnum + ctwo;
}
}
else {
secondnum = secondnum + c;
}
System.out.println(secondnum);
}
}
}
此外:即使将代码简化为只添加每个单独数字的值在一起,所述值的总和仍然很远。
谢谢,我认为可能是这种情况。但我不知道如何克服这个障碍。这工作,我接受它作为解决方案 – Tealdragon204