真的就像其他大大說的,要注意你的判斷式,題目給的判斷是是沒錯的,只是你要注意當數字和(有加檢查碼)%10==0的時候,直接套題目的式子就會出錯,所以請用(10-sum%10)%10==字母%10,或是直接參照第一頁的題目,身分證驗證的公式去寫八。
import java.util.Scanner;
import java.util.StringTokenizer;
public class JAVA {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner cin=new Scanner(System.in);
int[] list={10,11,12,13,14,15,16,17,34,18,19,20,21,22,35,23,24,25,26,27,28,29,32,30,31,33};
while(cin.hasNext()){
String input=cin.nextLine();
int sum=0;
for(int i=8;i>=1;i--){
sum+=(input.charAt(8-i)-'0')*i;
}
sum+=(input.charAt(8)-'0');
int upper=0;
for(int i=0;i<=25;i++){
upper=0;
upper=(list[i]%10)*9+list[i]/10;
upper=upper%10;
//System.out.println(upper+" "+sum);
if((upper+sum)%10==0){
System.out.printf("%c",i+65);
}
}
System.out.println();
}
}
}