2017-04-15 51 views
0

我想實現Luhn的驗證信用卡的算法,有一個步驟是我們反轉卡號,爲什麼有必要扭轉號碼?當我們使用Luhn算法來驗證信用卡時,爲什麼我們要將數字反轉?

+0

[Luhn算法](https://en.wikipedia.org/wiki/Luhn_algorithm)中沒有這樣的步驟。 – AlexP

+0

@AlexP有些網站正在撰寫此步驟。我會遵循維基百科所說的。 – Ambitions

+1

混淆可能部分是因爲你應該從最右邊的數字開始,然後向左移動。這當然與顛倒數字相同,然後向右移動。 – PaulG

回答

1

Luhn算法涉及將數字中的每隔一位數加倍,以使最右邊的數字(校驗位)不加倍。這意味着最左邊的數字可能會增加或減少一倍,具體取決於數字是否有奇數或偶數的數字。處理這種變化的一種方法是顛倒數字,並始終以非加倍的數字開始 - 但這對我來說似乎是矯枉過正;有各種解決方案(例如以相反的順序對數字進行索引),這些解決方案的工作量要少於反轉數字。

相關問題