문2>주민번호 체크
     13자리의 숫자 스트링 중에서 앞에서부터 12자리의 숫자 스트링을 각 숫자로 분할하여 각 자리의 수에 가중치 2, 3, 4, 5, 6, 7, 8, 9, 2, 3, 4, 5를 곱합니다.
     곱한수를 모두 더하여 총합을 구합니다.
     총합을 11로 나눈 나머지를 구합니다.
     그 나머지를 11에서 뺀 결과가 CHECK DIGIT 입니다.
    뺀 결과가 2자리수인 경우에는 2자리수를 10으로 나눈 나머지가 CHECK DIGIT가 됩니다.
    CHECK DIGIT의 값이 입력 숫자 스트링의 13번째 숫자와 같으면 "CORRECT", 다르면 "INCORRECT"를 출력합니다.

 

 

  int[] num = new int[]{2, 3, 4, 5, 6, 7, 8, 9, 2, 3, 4, 5};
  
  System.out.print("13자리 주민번호 체크합니다. 입력하세요 :");
  Scanner sc = new Scanner(System.in);
  String str = sc.next();
  
  int hap=0;
  int chk=0;
 
  for(int i=0; i<num.length; i++){
   hap += str.charAt(i) * num[i];
  }
  if(11 - hap%11 > 9){
   chk = (11 - hap%11)%10+1;
   System.out.println(chk);
  } else {
   chk = 11 - hap%11+1;
   System.out.println(chk);
  }
  
  System.out.println(str.charAt(12));
  System.out.println(chk);
  if(chk == str.charAt(12)) {
  
   System.out.println("INCORRECT");
  } else {
   
   System.out.println("CORRECT");
   
  }

+ Recent posts