zoukankan      html  css  js  c++  java
  • 身份证号码验证 C#

    输入18位身份证号码, 提示号码是否是有效的,如果无效则建议一个有效身份证。

    注: 前17位必须正确才能建议一个准确的ID 号。

            static void Main(string[] args)
            {
                bool isValid = true;
                string Id = "171126199702163111";
                char[] cId = Id.ToCharArray();
                if (cId.Length != 18)
                    return;
                int sum = 0;
                int iter=18;
    
                for (int i = 0; i < cId.Length-1; i++)
                {
                    int c = Int32.Parse(cId[i].ToString());
                    int weight=Int32.Parse (Math.Pow(2, iter - 1).ToString ()) % 11;               
                    sum += c * weight;
                    iter--;
                }
                sum %= 11;
                int output = Int32.Parse(sum.ToString ());
                char validate = GetVerifyCode(output);
    
                if (validate == cId[cId.Length - 1])
                {
                    isValid = true;
                }
                else
                    isValid = false;
    
                StringBuilder recommendId = new StringBuilder();
                if (!isValid)
                {
                    for (int i = 0; i < cId.Length - 1; i++)
                    {
                        recommendId.Append(cId[i]);
                    }
                    recommendId.Append(validate);
                }
                else
                {
                    recommendId.Append("your input is valid");
                }
                Console.WriteLine(isValid.ToString ());
                Console.WriteLine("recommend {0}",recommendId .ToString ());
            }
    
            static char GetVerifyCode(int output)
            {
                switch (output)
                {
                    case 0: return '1'; 
                    case 1: return '0'; 
                    case 2: return 'X';
                    case 3: return '9';
                    case 4: return '8';
                    case 5: return '7';
                    case 6: return '6';
                    case 7: return '5';
                    case 8: return '4';
                    case 9: return '3';
                    case 10: return '2';
                    default : return 'X';
                }
            }
  • 相关阅读:
    3.db2性能和优化
    SpringBoot之demo
    1设计模式---工厂模式。
    1.添加maven项目后,tomcat启动失败
    2.如何卸载mysql
    2.hdfs中常用的shell命令
    1.在eclipse上添加maven
    2.hive入门篇
    1.hive数据库调优之路
    2.myeclipse的使用技巧
  • 原文地址:https://www.cnblogs.com/qixue/p/3121638.html
Copyright © 2011-2022 走看看