我尝试使用Luhn算法检查信用卡的验证,该算法的工作原理如下:
从右到左加倍每秒.如果数字加倍会产生两位数字,请将两位数相加以得到一位数字.
2*2 = 4
2*2 = 4
4*2 = 8
1*2 = 2
6*2 = 12(1 + 2 = 3)
5*2 = 10(1 + 0 = 1)
8*2 = 16(1 + 6 = 7)
4*2 = 8
现在添加步骤1中的所有单位数字.
4 + 4 + 8 + 2 + 3 + 1 + 7 + 8 = 37
在卡号中从右到左添加奇数位的所有数字.
6 + 6 + 0 + 8 + 0 + 7 + 8 + 3 = 38
对步骤2和步骤3的结果求和.
37 + 38 = 75 …
我对以下编程任务有疑问.
信用卡号码遵循某些模式.信用卡必须在13到16位之间.它必须从:
•4张Visa卡
•5张万事达卡
•美国运通卡37张
1954年,IBM的Hans Luhn提出了一种验证信用卡号的算法.该算法可用于确定是否正确输入了卡号或扫描仪是否正确扫描了信用卡.几乎所有信用卡号都是在此有效性检查后生成的,通常称为Luhn检查或模数10检查,可以描述如下.例如,请考虑卡号4388576018402625.
2 x 2 = 4
2 x 2 = 4
4 x 2 = 8
1 x 2 = 2
6 x 2 = 12(1 + 2 = 3)
5 x 2 = 10(1 + 0 = 1)
8 x 2 = 16(1 + 6 = 7)
4 x 2 = 8
添加步骤1 4 + 4 + 8 + 2 + 3 + 1 + 7 + 8 = 37中的所有单个数字
在卡号中从右到左添加奇数位的所有数字
5 …