有一个 10位的数字 N13 N12 N11 N10 N9 N8 N7 N6 N5 N4 N3 N2 N1 其中N1是校验位
1 首先偶数位相加乘3 C1=(N12+N10+N8+N6+N4+N2)*3
2 除了校验位的奇数位相加C2= N3+N5+N7+N9+N11
3 C3=(C1+C2)的个位
4 校验位N1=10-C3好久没做程序了,兄弟们帮我写个小程序吧?
1 首先偶数位相加乘3 C1=(N12+N10+N8+N6+N4+N2)*3
2 除了校验位的奇数位相加C2= N3+N5+N7+N9+N11
3 C3=(C1+C2)的个位
4 校验位N1=10-C3好久没做程序了,兄弟们帮我写个小程序吧?
function GetCheckNum(const aNumber: string): Integer;
var
vEvenSum, vOddsSum, vCount : Integer;
begin
vEvenSum := 0;
vOddsSum := 0;
For vCount:= 1 to Length(aNumber) do
begin
if (i mod 2) = 0 then
vEvenNum := vEvenNum + IntToStr(aNumber[i])
else
vOddsSum := vOddsSum + IntToStr(aNumber[i]);
end;
vEvenNum := vEvenNum*3;
Result := 10 - (vEvenNum+vOddsNum - Trunc((vEvenNum+vOddsNum)/10)*10);
end;
GetCheckNum('123567890');
there is no overloaded version of “inttostr” that can be called with these arguments
转换成数字然后+1 怎么做,用strtoint 的话数字太大,已经超出范围了