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

标签 c algorithm cs50

我正在 edx.org 上 CS50 类(class);它叫做计算机科学导论。

我正在尝试解决第一周的问题集。所以用户输入信用卡号,我必须开发某种算法来检查它的号码是否有效。为此,我需要将整个 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;
}

最佳答案

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

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

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

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

如果您愿意,我可以尝试对其进行编码,但我认为您已经完成了那种工作。

关于c - 如何将残数与长长数分开?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41494213/

相关文章:

c++ - const char myVar* 与 const char myVar[]

c - 初学者的程序总是崩溃

algorithm - 最大化数组中之字形序列的数量

python - 在字符串中查找插入

c - C 中线程的函数签名

无法在 gcc ubuntu linux 中正确输入字符串

c# - 查找格式正确的括号的所有组合

c - 为什么在更改源文件时 make 不重建?

string - 在C语言中进行替换时输出的多余字符和符号

CS50学分任务回顾