当前位置: 首页 > 编程笔记 >

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

施文彬
2023-03-14
本文向大家介绍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语言程序设计有所帮助。

 类似资料:
  • 本文向大家介绍PHP实现通过Luhn算法校验信用卡卡号是否有效,包括了PHP实现通过Luhn算法校验信用卡卡号是否有效的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP实现通过Luhn算法校验信用卡卡号是否有效的方法。分享给大家供大家参考。具体实现方法如下: 运行结果 下面是一个更为简洁的代码: 输出结果如下 希望本文所述对大家的php程序设计有所帮助。

  • 我尝试使用Luhn算法检查信用卡的验证,该算法的工作步骤如下: 2*2=4 4*2=8 1*2=2 4*2=8 现在将步骤1中的所有个位数相加。 4+4+8+2+3+1+7+8=37 简单地说,我的程序总是对我输入的所有内容显示有效。即使它是一个有效的数字并且sumOfOddPlace和sumOfDoubleEvenPlace方法的结果等于零。 不胜感激。

  • 本文向大家介绍PHP验证信用卡卡号是否正确函数,包括了PHP验证信用卡卡号是否正确函数的使用技巧和注意事项,需要的朋友参考一下 可以使用以下PHP函数,验证一个卡号是否是信用卡:

  • 我试图创建一个方法来验证信用卡号,但我们必须将其作为字符串处理 1954年,IBM的Hans Luhn提出了一种验证信用卡号码的算法。该算法有助于确定是否正确输入了卡号或扫描仪是否正确扫描了信用卡。几乎所有的信用卡号码都是根据这种有效性检查生成的,通常称为Luhn检查或模数10检查,可以描述如下。为了说明,请考虑卡号4388576018402625。 从右到左每秒数字加倍。如果一个数字的倍增导致一

  • 我试图用JAVA开发一个应用程序,它将检查用户输入的信用卡号是否有效。 下面是检查模数10的步骤: 步骤1:从右到左每秒数字加倍。如果一个数字的倍增导致一个两位数,则将这两个数字相加得到一个个位数。 步骤4:求和步骤2和步骤3的结果 步骤5:如果步骤4的结果可被10整除,则卡号有效;否则无效。在这种情况下,卡号无效--因为75不能被10整除。 到目前为止,我的问题是,我尝试的每一个卡号(使用有效的

  • 问题内容: 在没有信用卡号且没有其他信息的情况下,PHP中确定该号码是否为有效号码的最佳方法是什么? 现在,我需要可以与American Express,Discover,MasterCard和Visa一起使用的功能,但是如果它也可以与其他类型的功能一起使用,可能会有所帮助。 问题答案: 卡号验证分为三个部分: 模式 -是否与发行者模式(例如VISA /万事达卡等)匹配 CHECKSUM- 它是否