身份证第18位计算

public class 身份证 {
	public static void main(String[] args) {
		int[] 十七位系数 = { 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 };
		String 身份证前17位 = "42080120001212406";
		long sum = 0;
		for (int i = 0; i < 身份证前17位.length(); i++) {
			int n = Integer.parseInt(身份证前17位.charAt(i) + "");
			sum += n * 十七位系数[i];
		}
		long index = sum % 11;
		String 第18位 = "10X98765432";
		char c18 = 第18位.charAt((int) index);
		System.out.println(c18);
	}
}
posted @ 2020-03-15 11:42  虎老狮  阅读(324)  评论(0编辑  收藏  举报