补习一下基础算法; 把{ 1, 2, 3, 4, 5 } 输出为 { 5 ,4 ,3 ,2 ,1 } ; 原理:把第一个数和最后一个数交换,第二个和最后第二个交换,以此类推,也就是(第i个索引)和(数组长度-1-i)交换。交换的次数为:数组长度/2 int[] arr…
Archive for the ‘算法’ Category
现在的居民身份证由原先的15位号码升级为 18位了。从左至右,第1-2位为省级行政区划代码,第3-4为为地级行政区划代码,第5-6位为县级行政区划代码,第7-10位为出生年份,第 11-12位为出生月份,第13-14为出生日期,第15-17位为顺序码,表示在同一地址码所标识的区域范围内,对同年、同月、同日出生的人编定的顺序 号,顺序码的奇数分配给男性,偶数分配给女性,第18位为作为尾号的校验码,是由号码编制单位按统一的公式计算出来的,如果某人的尾号是0-9,都不会出 现X,但如果尾号是10,那么就得用X来代替,因为如果用10做尾号,那么此人的身份证就变成了19位。X是罗马数字的10,用X来代替10,可以保证公 民的身份证符合国家标准。 根据《中华人民共和国国家标准GB 11643-1999》中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成。排列顺序从左至右依次为:六位数 字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。顺序码的奇数分给男性,偶数分给女性。校验码是根据前面十七位数字码,按照ISO 7064:1983.MOD 11-2校验码计算出来的检验码。 下面介绍算法。 先引入公式: 计算公式令结果为 Y,Y的计算公式为:Y = mod(S, 11)根据下表找出 Y 对应的校验码即为要求身份证号码的校验码C。…