1
私はLuhnアルゴリズムを使ってjavaでチェックデジットを作成しようとしていましたが、ここでは全面的な不満から来ました。私は非常に最初のステップで、すべての桁を合計しています(2桁目の2桁が2倍になり、9を2倍した場合は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