java根据位置更改数字
你好,我正在为课堂编写一些东西。我们基本上是制作一个信用卡检查器,从文本文件中提取数字。我们必须遵循的校验位规则如下
从卡号中删除最后一位数字。最后一位是支票 数字
把数字倒过来
将奇数位置(1、3、5等)的数字乘以2
从任何大于9的结果中减去9
将所有数字相加
支票数字(卡的最后一个数字)是您支付的金额 需要相加才能得到10的倍数(模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;
}
我现在陷入了下一步:/。我该怎么做?谢谢
# 1 楼答案
下一步:
这要求您迭代输入号码中的所有数字。有两种方法可以做到这一点:
希望这能帮助你完成剩下的练习