我遇到了一個我正在爲學校寫的程序的問題。我需要使用Luhn算法驗證信用卡號碼,但是我在獲取算法邏輯正常工作方面遇到了一些困難。我相信我知道問題出在哪裏,但我無法修復它。Luhn算法不起作用
我相信這個問題是在這裏:
For i = 0 To cardInput.Text.Length - 2 Step -2
Dim x = (i * 2)
If x > 9 Then
x = x - 9
End If
oddTotal += x
Next
'Sum of undoubled digits
For i = 0 To cardLength - 1 Step -2
evenTotal += i
Next
total = oddTotal + evenTotal
checkSum = total
infoOutput.Items.Add("CheckDigit: " & checkDigit)
infoOutput.Items.Add("CheckSum :" & checkSum)
'Verify that the card is valid by the Mod 10 (Lund algoritm)
If checkSum = checkDigit Or checkSum = 0 Then
valid = True
Else
valid = False
End If
如果它的需要,我的項目的其餘部分可以看出here
我的代碼似乎並沒有啓動在了最後一位,採取一切其他數字回到起點翻倍。 Step -2運算符在這裏不正確嗎?我究竟做錯了什麼?
你似乎沒有使用該卡號碼數字。 –
我不明白我是如何,但如果我使用此代碼來顯示選定的數字,它顯示罰款在我的列表框。 infoOutput.Items.Add(cardInput.Text.Substring(cardLength -2,1)) 所以我的For循環應該選擇數字並利用它們是正確的? –