我正在尝试在 Java 中编写 Luhn 算法。
我当前的代码是:
import java.util.Scanner;
public class luhnAlgorithm {
public static void main(String[] args) {
System.out.println("main() : Entry Point");
Scanner input = new Scanner(System.in);
long num;
int digit;
int sum = 0;
System.out.println("Enter the digits of a credit card number : ");
num = input.nextLong();
while (num > 0) {
digit = (int) num % 10;
num = num / 10;
if (num % 2 != 0 ) {
digit *= 2;
}
if (digit > 9) {
digit -= 9;
}
sum += digit;
}
if(sum % 10 == 0) {
System.out.println("Credit card number is valid.");
}
else
System.out.println("Credit card number is invalid. Please try again.");
System.out.println("main() : Exit Point");
}
}
我遇到的问题是,当我输入有效的信用卡号时,例如:4012888888881881(通过PayPal Test Credit Card Accounts),它说它无效。但是当我输入我自己的借记卡号码时,它说它是有效的。
我知道这里有一些代码搞砸了,我就是不知道是什么。
任何帮助将不胜感激,并提前感谢!