zoukankan      html  css  js  c++  java
  • 验证身份证号码真实性~用c++写的哦~

    本人在校学生,在看过网络与信息安全课程过程中,发现了一个验证身份证号码的好办法:

     

     

    上面的解释已经通俗易懂了!于是......

    以此为启发,写了一个辨别身份证号是否为真的小代码:

    先上执行结果:

     这个身份证号码是由系统生成,是真实的身份证号码

     

     该身份证则是我Bianc编的啦~

    代码如下:

     1 #include <iostream>
     2 
     3 using namespace std;
     4 
     5 int main()
     6 {
     7 
     8     cout << "--------------请输入要验证的身份证号码:--------------" << endl;
     9     cout<<"输入时请注意:"<<endl;
    10     cout<<"1.身份证尾号是x时,请用120代替"<<endl;
    11     cout<<"2.每位身份证号之间请用空格隔开"<<endl;
    12     int a[18],i;
    13     for(i=0;i<18;i++)
    14     {
    15         cin>>a[i];
    16     }
    17     int sum=(a[0]*7)+(a[1]*9)+(a[2]*10)+(a[3]*5)+(a[4]*8)+(a[5]*4)+(a[6]*2)+(a[7]*1)+(a[8]*6)+(a[9]*3)+(a[10]*7)+(a[11]*9)+(a[12]*10)+(a[13]*5)+(a[14]*8)+(a[15]*4)+(a[16]*2);
    18     int n=sum%11;
    19     switch(n)
    20     {
    21         case 0:if(a[17]==1) cout<<"该身份证号正确!"; else cout<<"该身份证号为假"; break;
    22         case 1:if(a[17]==0) cout<<"该身份证号正确!"; else cout<<"该身份证号为假"; break;
    23         case 2:if(a[17]==120) cout<<"该身份证号正确!"; else cout<<"该身份证号为假"; break;
    24         case 3:if(a[17]==9) cout<<"该身份证号正确!"; else cout<<"该身份证号为假"; break;
    25         case 4:if(a[17]==8) cout<<"该身份证号正确!"; else cout<<"该身份证号为假"; break;
    26         case 5:if(a[17]==7) cout<<"该身份证号正确!"; else cout<<"该身份证号为假"; break;
    27         case 6:if(a[17]==6) cout<<"该身份证号正确!"; else cout<<"该身份证号为假"; break;
    28         case 7:if(a[17]==5) cout<<"该身份证号正确!"; else cout<<"该身份证号为假"; break;
    29         case 8:if(a[17]==4) cout<<"该身份证号正确!"; else cout<<"该身份证号为假"; break;
    30         case 9:if(a[17]==3) cout<<"该身份证号正确!"; else cout<<"该身份证号为假"; break;
    31         case 10:if(a[17]==2) cout<<"该身份证号正确!"; else cout<<"该身份证号为假"; break;
    32         default :break;
    33     }
    34     return 0;
    35 }
  • 相关阅读:
    USACO2008 Cow Cars /// oj23323
    USACO2008 Roads Around The Farm /// queue oj23321
    USACO2007 捕牛记 /// queue+桶 oj1503
    哈理工多校算法赛一
    USACO2012 Haybale stacking /// 区间表示法 oj21556
    USACO2012 Broken necklace /// DP oj10103
    USACO2004 cube stacking /// 带权并查集 oj1302
    ACM-ICPC 2018 南京赛区网络预赛 J sum (找一个数拆成两个无平方因子的组合数)
    分层图 (可以选择K条路的权为0,求最短路)
    POJ 3537 Crosses and Crosses(sg博弈)
  • 原文地址:https://www.cnblogs.com/yangnansuper/p/12776452.html
Copyright © 2011-2022 走看看