2012年4月9日 星期一

Java 身分證檢驗


import java.util.Scanner;

public class IdAuthentication{
        public static void main(String[] args){
                Scanner sc = new Scanner(System.in);
                String str;
  
                while( sc.hasNext() ){
                        str = sc.nextLine();
                        char c [] = str.toCharArray();
   
                        if( c[0] == 88 || c[0] == 89 ){
                                c[0] -= 58;
                        }
                        else if( c[0] >= 65 && c[0] <= 72 ){
                                c[0] -= 55;
                        }else if( c[0] >= 74 && c[0] <= 78){
                                c[0] -= 56;
                        }else if( c[0] >= 80 && c[0] <= 86){
                                c[0] -= 57;
                        }else{
                                c[0] = (c[0] == 73) ? 34 : (c[0] == 79) ? 35 : 
                                        (c[0] == 87) ? 32 : (c[0] == 90) ? 33 : c[0];
                        }
   
                        int sum = c[0]/10 + (c[0]%10)*9 + (c[9]-48);
   
                        for(int i = 1; i < c.length-1; i++){
                                sum += (c[i]-48)*(9-i);
                        }
   
                        if( sum % 10 == 0 ){
                                System.out.println("real");
                        }
                        else{
                                System.out.println("fake");
                        }
                }
        }
}


題目

沒有留言:

張貼留言