我正在 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/