小编som*_*864的帖子

尝试用 C 语言实现 Luhn 算法

我正在尝试用 C 语言实现 Luhn 算法来检查信用卡有效性,对于那些不知道的人......就是这样:

\n
    \n
  • 从数字\xe2\x80\x99s\n倒数第二个数字开始,每隔一个数字乘以 2,然后将这些乘积\xe2\x80\x99 数字相加。

    \n
  • \n
  • 将总和添加到 \xe2\x80\x99t 乘以 2 的数字之和。

    \n
  • \n
  • 如果总计 \xe2\x80\x99s 最后一位数字为 0(或者,更正式地说,如果总计
    \n模 10 与 0 全等),则该数字有效!

    \n
  • \n
\n
\n

为了实现这一点,我循环遍历整个数字,如果我所在的数字位置的模 2 等于 0,那么我将乘以 2 并添加到一个名为totalEven

\n

如果不是这种情况,我会将我所在的号码添加到totalOdd而不进行乘法。

\n

然后我会将这个位置加 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)

c luhn cs50

5
推荐指数
1
解决办法
8858
查看次数

标签 统计

c ×1

cs50 ×1

luhn ×1