私たちの指示では、16桁の数字を取得し、奇数の場所のすべての桁を右から左に合計する必要があります。その後、右から左に偶数桁の数字を合計し、合計を2倍してから、モジュール9を取る必要があります。コードを実行しようとすると、有効なクレジットカードであっても "無効"数。javaの偶数桁と奇数桁の合計を計算する際のエラー
public static boolean validateCreditCard(long number) {
double cardSum = 0;
for (int i = 0; i < 16; i++) {
long cardnumber = (long) Math.pow(10, i);
double oddPlaceSum = 0;
double evenPlaceSum = 0;
if (i % 2 != 0) {
oddPlaceSum += ((int)(number % cardnumber/(Math.pow(10, i))));
} else { // so if i%2 ==0
evenPlaceSum += ((int)(number % cardnumber/(Math.pow(10, i)) * 2 % 9));
}
cardSum += evenPlaceSum + oddPlaceSum;
}
if (cardSum % 10 == 0) {
return true;
System.out.println("Valid");
} else {
return false;
System.out.println("Invalid");
}
}
これは有効なJava(到達不能文)ではありません。 – xehpuk