Chinaunix首页 | 论坛 | 博客
  • 博客访问: 701366
  • 博文数量: 126
  • 博客积分: 2944
  • 博客等级: 上校
  • 技术积分: 1160
  • 用 户 组: 普通用户
  • 注册时间: 2005-02-17 11:09
个人简介

文章分类

全部博文(126)

文章存档

2022年(1)

2018年(1)

2017年(5)

2016年(5)

2013年(5)

2012年(21)

2011年(24)

2010年(1)

2009年(2)

2008年(12)

2007年(6)

2006年(19)

2005年(24)

分类: C/C++

2006-06-02 16:42:04

原来以为算不出来的:
  1. #include <iostream>
  2. #include <stdlib.h>

  3. using namespace std;

  4. int main()
  5. {
  6.     string id_in;
  7.     
  8. lg_1:
  9.     cout << "Input you ID No: ";
  10.     cin >> id_in;
  11.     
  12.     if (id_in.length() != 15) {
  13.         cout << "ID has 15 number. Input again." << endl;
  14.         goto lg_1;
  15.     }

  16.     string s;
  17.     for (int i = 0; i < 15; i++){
  18.         s = id_in.substr(i,1);
  19.         if ((s > "9") || (s < "0")){
  20.             cout << "ID only has number! Input again." << endl;
  21.             goto lg_1;
  22.         }
  23.     }
  24.     
  25.     cout << "Your ID No is: " << id_in.substr(0,6) << " " << id_in.substr(6) << endl;
  26.     
  27.     id_in = id_in.substr(0,6) + "19" + id_in.substr(6);

  28.     int wi[] = {7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1};
  29.     int sum = 0;
  30.     
  31.     for(int i = 0; i < 17; i++){
  32.         sum += atoi(id_in.substr(i,1).c_str()) * wi[i];
  33.     }
  34.     
  35.     char r[] = {'1','0','x','9','8','7','6','5','4','3','2'};
  36.     
  37.     cout << "New ID No is: ";
  38.     cout << id_in << r[(sum % 11)] << endl;
  39.      
  40.     return 0;
  41. }
阅读(1588) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~