美文网首页
C# 通过Luhn算法验证信用卡卡号是否有效的代码

C# 通过Luhn算法验证信用卡卡号是否有效的代码

作者: 联联小子 | 来源:发表于2019-01-13 20:58 被阅读0次

在工作过程中,把开发过程较好的一些内容片段备份一次,如下内容是关于C# 通过Luhn算法验证信用卡卡号是否有效的内容,应该是对小伙伴们也有好处。

using System;

using System.Linq;

namespace Luhn

{

    class Program

    {

        public static bool luhn(long n)

        {

            long nextdigit, sum = 0;           

            bool alt = false;           

            while (n != 0)

            {               

                nextdigit = n % 10;

                if (alt)

                {

                    nextdigit -= (nextdigit > 9) ? 9 : 0;

                }

                sum += nextdigit;

                alt = !alt;

                n /= 10;

            }

            return (sum % 10 == 0);

        }

        public static bool luhnLinq(long n)

        {

            string s = n.ToString();

            return s.Select((c, i) => (c - '0') << ((s.Length - i - 1) & 1)).Sum(n => n > 9 ? n - 9 : n) % 10 == 0;

        }

        static void Main(string[] args)

        {           

            long[] given = new long[] {49927398716, 49927398717, 1234567812345678, 1234567812345670};

            foreach (long num in given)

            {

                string valid = (luhn(num)) ? " is valid" : " is not valid";

                Console.WriteLine(num + valid);

            }

        }

    }

}

运行上面的代码,输出结果如下

49927398716 is valid

49927398717 is not valid

1234567812345678 is not valid

1234567812345670 is valid

相关文章

  • C# 通过Luhn算法验证信用卡卡号是否有效的代码

    在工作过程中,把开发过程较好的一些内容片段备份一次,如下内容是关于C# 通过Luhn算法验证信用卡卡号是否有效的内...

  • 挑战蓝桥杯之“信用卡号验证”

    挑战蓝桥杯之“信用卡号验证” 信用卡号验证 当你输入信用卡号码的时候,有没有担心输错了而造成损失呢?其实可以不必这...

  • 判断银行卡

    1.判断银行卡号 检验数字算法(Luhn Check Digit Algorithm),也叫做模数10公式,是一种...

  • 银行卡号验证

    代码验证银行卡号

  • 有效性验证 Luhn 算法—"模10"

    居民身份证号码第 18 位居民身份证号码按照《公民身份证号码》国家标准编制,身份证号码由18位数字组成:前6位为行...

  • Https简单通信

    在业务中有一个需要取信用卡号码的要求,我通过Https实现简单通信代码

  • 银行卡合法性校验

    Luhn检验数字算法(Luhn Check Digit Algorithm),也叫做模数10公式,是一种简单的算法...

  • mod10 算法解析

    概要 模10 算法,也称 "Luhn" 算法(以其创建者 IBM科学家Hans Peter Luhn 命名)。是一...

  • 银行卡模10校验

    校验码为银行卡号最后一位,采用LUHN算法,亦称模10算法。计算方法如下: 第一步:从右边第1个数字开始每隔一位乘...

  • Luhn算法

    维基百科,自由的百科全书 Luhn算法(Luhn algorithm),也称为“模10”(Mod 10)算法,是一...

网友评论

      本文标题:C# 通过Luhn算法验证信用卡卡号是否有效的代码

      本文链接:https://www.haomeiwen.com/subject/jxnldqtx.html