こんにちは私は現在、クラスのために何かをコーディングしています。基本的には、テキストファイルから数値を引き出すためのクレジットカードチェッカーを作成しています。チェックデジットに従わなければならない規則は以下の通りです。ポジションに応じて番号を変更
カード番号の最後の桁を削除します。最後の桁は の数字です。
数字を逆にします。
乗算9
合計すべての数字よりも高い任意の結果から2
減算9によって奇数位置の桁(1、3、5、等)。
チェックデジット(カードの最後の数は)あなた が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;
}
:私はその後として見ることができるの数字を逆にループを使用していました。どうすればいい?ありがとう!
数字をバイトの配列として格納すると便利です。ビット操作と計算を使うよりも簡単かもしれません。 –
私はそれをどうやって正確にやりますか? – bobobobbins