如何将残数与长长数分开?

How do I separate residue from long long number?

我正在 edx.org 参加 CS50 课程;它叫做计算机科学导论。

我正在尝试解决第一周的问题集。所以用户输入信用卡号,我必须开发某种算法来检查它的号码是否有效。为此,我需要将整个 16 位数字分开。而我被困在这里。我想我需要循环执行此操作,逐个数字地获取每个步骤,为此我想将用户的输入每一步除以 10,并以某种方式得到残差。

我无法转换为类型 int,因为 int 对它可以容纳的位数有限制。我该如何实现这种功能?我试过了,但后来意识到它什么也没有……至少乍一看是这样。 cre_num 保留信用编号。

long long check(long long cre_num)
{
    double part, i;

    for (i = 0.1; i <= 1; i = i+0.1)
    {
        if (cre_num/10 == i)
        {
            part = i;
        }
    }
    return part;
}

您需要输入一个向量,或类似的向量,一个数字的 16 位数字(long int)?

当您将一个数字 % 乘以 10 时,您会得到它的最后一位数字,如下所示:

13%10 = 3
3%10 = 3 (03 = 3)
523%10 = 3

所以,如果你 %10 你得到最后一位数字并放入你的矢量,而不是 /10,因为 /10 将删除最后一位数字,即你已经保存的那个。

如果你愿意,我可以尝试编写代码,但我认为你已经完成了。