如何从长号中分离出残留物?

时间:2017-01-05 20:35:40

标签: c algorithm cs50

我参加了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;
}

1 个答案:

答案 0 :(得分:3)

你需要输入一个向量,或者它的种类,数字的16位数(long int)?

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

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

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

如果你愿意,我可以尝试编码,但我认为你已经完成了这样的工作。