首页 > 其他 > 详细

1031 查验身份证 (15 分)

时间:2019-04-26 13:16:17      阅读:285      评论: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 版权所有
打开技术之扣,分享程序人生!