문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");
}
'2020년도 이전 > [WebSig] JAVA' 카테고리의 다른 글
Java Programming을 단일 문자열로 입력받고, 입력받은 문자열에 대해서 역순으로 출력하시오 (0) | 2013.06.26 |
---|