华域联盟 Golang Go语言通过Luhn算法验证信用卡卡号是否有效的方法

Go语言通过Luhn算法验证信用卡卡号是否有效的方法

本文实例讲述了Go语言通过Luhn算法验证信用卡卡号是否有效的方法。分享给大家供大家参考。具体实现方法如下:

复制代码 代码如下:

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 i&1 == 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语言程序设计有所帮助。

本文由 华域联盟 原创撰写:华域联盟 » Go语言通过Luhn算法验证信用卡卡号是否有效的方法

转载请保留出处和原文链接:https://www.cnhackhy.com/109997.htm

本文来自网络,不代表华域联盟立场,转载请注明出处。

作者: sterben

发表回复

联系我们

联系我们

2551209778

在线咨询: QQ交谈

邮箱: [email protected]

工作时间:周一至周五,9:00-17:30,节假日休息

关注微信
微信扫一扫关注我们

微信扫一扫关注我们