你好,我现在正在为课堂编写一些东西。我们基本上是建立一个信用卡检查器来从文本文件中提取数字。我们必须遵循的校验位规则如下。
从卡号中删除最后一位数字。最后一位是支票 数字。
反转数字。
将奇数位置(1,3,5等)的数字乘以2.
从高于9的任何结果中减去9。
求和所有数字。
校验位(卡的最后一个号码)是您的金额 需要添加以获得10的倍数(Modulo 10)
所以我通过设置一个新变量并取卡#/ 10来拉开校验位。它很长,所以没有小数,所以这摆脱了最后一位数。然后我使用原始数字的%10将该数字存储为我的校验位。然后我使用循环来反转数字,可以看作:
long lcards = Long.parseLong(cards);
long lastDigit = lcards % 10;
long newCard = lcards / 10;
long reverseCard = 0;
while (newCard != 0)
{
reverseCard = reverseCard * 10;
reverseCard = reverseCard + (newCard % 10);
newCard = newCard / 10;
}
我现在停留在下一步:/。我该怎么做?谢谢!
答案 0 :(得分:0)
下一步:
将奇数位置(1,3,5等)的数字乘以2。
这要求您在输入数字中迭代所有数字。有两种方法可以做到这一点:
希望这有助于让你继续进行剩余的练习!