众所周知航天钞的号码规律为:航天钞上号码除J外10位数字相加所得若为个位数时等于7,为两位数时,十位数与个位数再次相加等于7或16(或再次十位数与个位数相加数值为7)。
根据规律J**********,十位数字相加为{7,16,25,34,43,52,61,70,79},在实际验算过程中如果用公式计算(用IF/OR语句实现比较麻烦,可怜的笔者以前一直用的是N长的IF/OR语句来实现)
在网上有看到还有一种验算方法为欧元验证法,把J看成10,加在十位数前,得到10**********的一个12位数除于9,余数为8。笔者还傻傻的进行过一次验算。
把航天钞号码后九位数字相加的值看着是Y,校验码为X,则X+Y={7,16,25,34,43,52,61,70,79}
可得出 IF(MOD(7-Y,9)=0,"9",MOD(7-Y,9))公式来计算出校验码X,
从上式可以看出X+Y+2=9N(9的倍数),X=9N-2-Y,且X≠0。
钞号验算方法,十位数字相加为Z,
则 IF(MOD(Z+2),9)=0,"存在该号","错误号码")
在这里要提到的一句话就是9的倍数有一个特征所有的数字相加最终为9,与航天钞的规律不同的就是终值不同,那么把7+2以后就可以用9的规律来计算。
写本文的目的是为了方便推算航天钞号码泉友,不喜勿喷,欢迎指正。