查验身份证 (15 分) 一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};然后将计算的和对11取模得到值Z;最后按照以下关系对应Z值与校验码M的值:
// test4.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
#include "pch.h"
#include <iostream>
#include <cmath>
using namespace std;
int quanz[17] = { 7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2 };
char s_fz[100][18];
int tran(char a)
{
	int k;
	for (int i = 0; i <= 10; i++)
	{
		if (a == '0' + i)
		{
			k = i; return k;
		}
		if (a == 'X')
		{
			k = 10; return k;
		}
	}
}
int g, j, k;
int main()
{
	k = 0;
	cin >> g;
	for (int i = 0; i < g; i++)
	{
		j = 0;
		do
		{
			cin >> s_fz[i][j];
			j++;
} while (j != 18);
	}
	int cl;
	int c[100][18];
	for (int j = 0; j < g; j++)
	{
		int k = 0;
		for (int i = 0; i <= 17; i++)
		{	
			cl = tran(s_fz[j][i]);
			c[j][k] = cl;
			k++;
		}
	}
	int sum[100];
	int Sum=0;
	int k5 = 0;
	for (int j = 0; j < g; j++)
	{
		for (int i = 0; i <= 16; i++)
		{
			Sum = Sum + c[j][i] * quanz[i];
		}sum[k5] = Sum; k5++;
	}
	int mo[100];
int j1=0;
	for (int i = 0; i < g; i++)
	{
		mo[i] = sum[i] % 11;
		if (mo[i] == c[i][17]) { j1++; }
		else
		{	
			for (int j = 0; j < 18; j++)
			{
				cout << s_fz[i][j];
			}
		}
}
	if (j1 == g)
	{
		cout << "All passed";
	}
}
全是BUG,无力吐槽
查验身份证 (15 分) 一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};然后将计算的和对11取模得到值Z;最后按照以下关系对应Z值与校验码M的值:的更多相关文章
- PAT (Basic Level) Practice (中文)1031 查验身份证 (15分)
		
1031 查验身份证 (15分) 一个合法的身份证号码由17位地区.日期编号和顺序编号加1位校验码组成.校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为: {7,9,10,5,8,4,2 ...
 - PAT Basic 1031 查验身份证 (15 分)
		
一个合法的身份证号码由17位地区.日期编号和顺序编号加1位校验码组成.校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8, ...
 - 1031 查验身份证 (15 分)C语言
		
题目描述 一个合法的身份证号码由17位地区.日期编号和顺序编号加1位校验码组成.校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7,9,10 ...
 - PAT (Basic Level) Practice (中文)1031 查验身份证 (15 分)
		
一个合法的身份证号码由17位地区.日期编号和顺序编号加1位校验码组成.校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8, ...
 - L1-016 查验身份证 (15 分)【考细心,考flag设置】
		
一个合法的身份证号码由17位地区.日期编号和顺序编号加1位校验码组成.校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8, ...
 - PAT 1031. 查验身份证(15)
		
一个合法的身份证号码由17位地区.日期编号和顺序编号加1位校验码组成.校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8, ...
 - PAT乙级   1031. 查验身份证(15)     标志要清零!!!!!!!!!
		
1031. 查验身份证(15) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 一个合法的身份证号码由17位地区. ...
 - PAT-乙级-1031. 查验身份证(15)
		
1031. 查验身份证(15) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 一个合法的身份证号码由17位地区. ...
 - PAT乙级 1031. 查验身份证(15)
		
题目传送:https://www.patest.cn/contests/pat-b-practise/1031 一个合法的身份证号码由17位地区.日期编号和顺序编号加1位校验码组成.校验码的计算规则如 ...
 
随机推荐
- springmvc处理过程理解(一)
			
DispatcherServlet前端控制器:接收request,进行response HandlerMapping处理器映射器:根据url查找Handler.(可以通过xml配置方式,注解方式) H ...
 - [原]windows sdk版本不对
			
系统硬盘换了,重新安装一堆软件,SVN. 之前的SVN地址直接能找到 在编译vs项目的时候出现问题: windows sdk 10.0.14393.0 版本找不到 发现自己按照vs时候更新不了最新sd ...
 - java环境变量---找不到或无法加载主类
			
默认安装在C:\ProgramFiles\Java\jdk1.7.0目录下 环境变量配置为 PATH=.;%JAVA_HOME%\bin CLASSPATH=.;%JAVA_HOME%\lib\dt. ...
 - STL——map
			
看到map这里,都不知道它主要是干嘛的,你有没有这样的疑问. map的主要作用:提供对T类型的数据进行快速和高效的检索 .C++ STL中标准关联容器set, multiset, map, multi ...
 - cookie被禁用,如何使用session
			
转载自:https://blog.csdn.net/ai_shuyingzhixia/article/details/80778183 1.禁止使用cookie response.encodeURL( ...
 - DAY1 计算机组成和操作系统
			
一.编程与编程目的 1.编程语言的定义 编程语言是人与计算机之间沟通的介质 2.什么是编程 编程就是程序员通过编程语言让计算机实现所想做的事 3.编程的目的 解放人力,让计算机按照人的逻辑思维进行工作 ...
 - JavaWeb知识点总结
			
>一: 创建Web项目项目说明:1.java Resources:java源文件2.WebContent:网页内容html.css.js.jsp.资源.配置文件等 HTML:Hyper Text ...
 - 有关C#中List排序的总结
			
这里有一篇文章作者总结的就比较详细: https://blog.csdn.net/jimo_lonely/article/details/51711821 在这里只记录一点: 对list或者数组中的数 ...
 - sql server auto increment - trace flag 272
			
从 sql 2012 开始, 微软为了让 insert 时 auto increment 快一些,做了一个 cache 的机制. 这个机制虽然好,但是也有麻烦的情况,如果你的 sql 突然 resta ...
 - canvas学习之小球动画
			
项目地址:http://pan.baidu.com/s/1skZGPgL 最近学习使用canvas做动画效果,主要原理就是创建一个小球对象,然后小球对象有一个moveball方法,每次让小球沿着随机路 ...