给定一个数字,判断它是否符合 Luhn 公式,也就是是否有效。
Luhn 算法是一种简单的校验和公式,用于验证各种标识号码,比如信用卡号和加拿大社会保险号。
任务是检查给定的字符串是否有效。
长度小于等于 1 的字符串无效。 输入中允许包含空格,但在检查前应先将空格去掉。 其他所有非数字字符都不允许出现。
4539 3195 0343 6467
Luhn 算法的第一步是从右往左,把每隔一位的数字翻倍。 我们要翻倍的是
4_3_ 3_9_ 0_4_ 6_6_
如果翻倍后得到的数字大于 9,就从乘积中减去 9。 翻倍后的结果如下:
8569 6195 0383 3437
然后把所有数字相加:
8+5+6+9+6+1+9+5+0+3+8+3+3+4+3+7 = 80
如果这个和能被 10 整除,那么这个数字就是有效的。 这个数字是有效的!
8273 1232 7352 0569
从右往左,把每隔一位的数字翻倍
7253 2262 5312 0539
把这些数字相加
7+2+5+3+2+2+6+2+5+3+1+2+0+5+3+9 = 57
57 不能被 10 整除,所以这个数字无效。
请仔细阅读说明,如果只是粗略扫一眼,可能会错过一些关于方向的重要细节。