首页 > 其他 > 详细

1031 查验身份证 (15 分)

时间:2019-04-26 13:16:17      阅读:287      评论:0      收藏:0      [点我收藏+]
#include <iostream>
#include <string>
using namespace std;
int main() {
    int n, i, sum = 0, cnt = 0;  // 这是为零很重要
    string s;
    int w[17] = { 7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2 };
    char z[11] = { ‘1‘, ‘0‘, ‘X‘, ‘9‘, ‘8‘, ‘7‘, ‘6‘, ‘5‘, ‘4‘, ‘3‘, ‘2‘ };
    cin >> n;
    getchar();
    for (int j = 0; j < n; j++) {  // 用for,  while过不去
        sum = 0;
        getline(cin, s);
        for (i = 0; i < 17 && s[i] >= ‘0‘ && s[i] <= ‘9‘; i++) {
            sum += (s[i] - ‘0‘) * w[i];
        }
        if (i == 17 && z[sum % 11] == s[17])
            cnt++;
        else
            cout << s << endl;
    }
    if (cnt == n)
        cout << "All passed" << endl;
    return 0;
}

 

1031 查验身份证 (15 分)

原文:https://www.cnblogs.com/Hk456/p/10773702.html

踩
(0)
赞
(0)
   
举报
评论 一句话评论(0)
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!