本文實例講述了Go語言通過Luhn算法驗證信用卡卡號是否有效的方法。分享給大家供大家參考。具體實現(xiàn)方法如下:
復制代碼 代碼如下:
package main
import (
"fmt"
"strings"
)
const input = `49927398716
49927398717
1234567812345678
1234567812345670`
var t = [...]int{0, 2, 4, 6, 8, 1, 3, 5, 7, 9}
func luhn(s string) bool {
odd := len(s) 1
var sum int
for i, c := range s {
if c '0' || c > '9' {
return false
}
if i1 == odd {
sum += t[c-'0']
} else {
sum += int(c - '0')
}
}
return sum%10 == 0
}
func main() {
for _, s := range strings.Split(input, "\n") {
fmt.Println(s, luhn(s))
}
}
輸出結果
復制代碼 代碼如下:
49927398716 true
49927398717 false
1234567812345678 false
1234567812345670 true
希望本文所述對大家的Go語言程序設計有所幫助。
您可能感興趣的文章:- iOS 中使用正則表達式判斷身份證格式及銀行卡號格式是否正確(推薦)
- PHP實現(xiàn)通過Luhn算法校驗信用卡卡號是否有效
- 判斷用戶輸入的銀行卡號是否正確的方法(基于Luhn算法的格式校驗)