/*********************************************************** 身份證字號判別,簡要版 ***********************************************************/ import java.io.*; public class n9{ public static void main(String args[]) throws Exception { //程式進入點 String getbr; BufferedReader br= new BufferedReader(new InputStreamReader(System.in)); int i,area=0,sum; /*****請使用者輸入選項**********/ while (true) { System.out.print("請輸入身份證字號:"); getbr = br.readLine(); //取得使用者的輸入 if (getbr.equals("0")) { System.out.println("結束"); return; } if (getbr.length()!=10) { System.out.println("長度不對"); continue; } getbr=getbr.toUpperCase();//轉成大寫 if (getbr.charAt(0)=='A') area=10; else if (getbr.charAt(0)=='B') area=11; else if (getbr.charAt(0)=='C') area=12; else if (getbr.charAt(0)=='D') area=13; else if (getbr.charAt(0)=='E') area=14; else if (getbr.charAt(0)=='F') area=15; else if (getbr.charAt(0)=='G') area=16; else if (getbr.charAt(0)=='H') area=17; else if (getbr.charAt(0)=='I') area=34; else if (getbr.charAt(0)=='J') area=18; else if (getbr.charAt(0)=='K') area=19; else if (getbr.charAt(0)=='L') area=20; else if (getbr.charAt(0)=='M') area=21; else if (getbr.charAt(0)=='N') area=22; else if (getbr.charAt(0)=='O') area=35; else if (getbr.charAt(0)=='P') area=23; else if (getbr.charAt(0)=='Q') area=24; else if (getbr.charAt(0)=='R') area=25; else if (getbr.charAt(0)=='S') area=26; else if (getbr.charAt(0)=='T') area=27; else if (getbr.charAt(0)=='U') area=28; else if (getbr.charAt(0)=='V') area=29; else if (getbr.charAt(0)=='W') area=32; else if (getbr.charAt(0)=='X') area=30; else if (getbr.charAt(0)=='Y') area=31; else if (getbr.charAt(0)=='Z') area=33; sum=(area%10)*9+area/10; for (i=1;i<9;i=i+1) { sum=sum+(getbr.charAt(i)-'0')*(9-i); } /************ sum=sum+(getbr.charAt(8)-'0')*1; sum=sum+(getbr.charAt(7)-'0')*2; sum=sum+(getbr.charAt(6)-'0')*3; sum=sum+(getbr.charAt(5)-'0')*4; sum=sum+(getbr.charAt(4)-'0')*5; sum=sum+(getbr.charAt(3)-'0')*6; sum=sum+(getbr.charAt(2)-'0')*7; sum=sum+(getbr.charAt(1)-'0')*8; **************/ sum=10-(sum%10); if (sum==10) sum=0; if ((getbr.charAt(9)-'0')!=sum) System.out.println("錯誤"); else System.out.println("正確"); } } }