我正在尝试用 C 语言实现 Luhn 算法来检查信用卡有效性,对于那些不知道的人......就是这样:
\n从数字\xe2\x80\x99s\n倒数第二个数字开始,每隔一个数字乘以 2,然后将这些乘积\xe2\x80\x99 数字相加。
\n将总和添加到 \xe2\x80\x99t 乘以 2 的数字之和。
\n如果总计 \xe2\x80\x99s 最后一位数字为 0(或者,更正式地说,如果总计
\n模 10 与 0 全等),则该数字有效!
为了实现这一点,我循环遍历整个数字,如果我所在的数字位置的模 2 等于 0,那么我将乘以 2 并添加到一个名为totalEven。
如果不是这种情况,我会将我所在的号码添加到totalOdd而不进行乘法。
然后我会将这个位置加 1,并检查其他数字,直到达到 16(卡片的最大数字)。
\n我稍后会将这两个变量相加,并检查总模数 10 是否等于 0。如果这意味着信用卡号是正确的,否则就是错误的。
\n这是代码:
\n#include <stdio.h>\n#include <cs50.h>\n\n//list of variables\n\n //is the card valid\n bool isValid = true;\n // the creditcard number\n long input;\n //mod stands for modules, and …Run Code Online (Sandbox Code Playgroud)