1
나는 Luhn 알고리즘을 사용하여 Java에서 체크 숫자를 만들려고 노력해 왔으며, 나는 여기서 완전히 좌절감을 보였다. 나는 첫 번째 단계에서 모든 숫자를 합산합니다. (두 번째 숫자는 두 배로 늘리고 두 배가되면 9를 빼면 9가됩니다.) 아직 합계가 될 것으로 예상되는 값 근처에서는 아무 것도 대답 할 수 없습니다. . 문자열로 "11"을 입력하면 출력 합이 138이 될 때 출력 합계가 3이됩니다. 코드에 무엇이 잘못되었는지 전혀 알 수 없으며 더 많은 경험을 가진 사람이 나를 도울 수 있는지 궁금합니다.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