当前你的浏览器版本过低,网站已在兼容模式下运行,兼容模式仅提供最小功能支持,网站样式可能显示不正常。
请尽快升级浏览器以体验网站在线编辑、在线运行等功能。

建议使用的浏览器:

谷歌Chrome 火狐Firefox Opera浏览器 微软Edge浏览器 QQ浏览器 360浏览器 傲游浏览器

1430:5.31 (财务应用程序:信用卡号的合法性)

题目描述

信用卡号遵循下面的模式。一个信用卡号必须是1316位的整数。他的开头必须是:

·4,指Visa

·6,指Master

·37,指American Express

·6,指Discover

1954年。IBMHans Luhn提出一种算法,该算法可以验证信用卡号的有效性。这个算法在确定输出的卡号是否正确,或者这张信用卡是否被扫描仪正确扫描方面是非常有用的。遵循这个合法性的检测,可以生成所有的信用卡号,通常称之为Luhn检测或者Mod 10检测,可以如下描述(为了方便解释,假设卡号为4388576018402626):

(1) 从右到左对偶数位的数字翻倍。如果对某个数字翻倍之后的结果是一个两位数,那么就将这两位加在一起得到一位数。

2*2=4 6*2=121+2=3

2*2=4 5*2=101+0=1

4*2=8 8*2=161+6=7

1*2=2 4*2=8

(2) 现在将第一步得到的所有一位数相加。 

4+4+8+2+3+1+7+8=37

(3) 将卡号里从右到左在奇数位上的所有数字相加。

                6+6+0+8+0+7+8+3=38

(4) 将第二步和第三步得到的结果相加。 

37+38=75

(5)  如果第四部得到的结果能被10整除,那么卡号是合法的;否则,卡号是不合法的

输入解释
输入一个长整型的数(13位至16位)
输出解释
若合法,输出合法,反之,输出不合法
输入样例
4388576018402626
输出样例
不合法

该题目包含在题集 SSPU

题目来源 sspu

共提交 131

通过率 61.07%
时间上限 内存上限
1000 MS 128 MB