PAT L1-016. 查验身份证

有关一道身份证的python编程题 有关一道身份证的题目,要求python解决 就昨天晚上嗷一个妹纸问我这样一道问题哈: 问题: 一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};然后将计算的和对11取模得到值Z;最后按照以下关系对应Z值与校验码M的值: Z:0 1 2 3 4 5 6 7 8 9 10 M:1 0 X 9 8 7 6 5 4 3 2 现在给定一些身份证号码,请你验证校验码的有效性,并输出有问题的号码。 输入格式: 输入第一行给出正整数N(≤100)是输入 立即下载

一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。校验码的计算规则如下:

首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};然后将计算的和对11取模得到值Z;最后按照以下关系对应Z值与校验码M的值:

Z:0 1 2 3 4 5 6 7 8 9 10
M:1 0 X 9 8 7 6 5 4 3 2

现在给定一些身份证号码,请你验证校验码的有效性,并输出有问题的号码。

输入格式:

输入第一行给出正整数N(<= 100)是输入的身份证号码的个数。随后N行,每行给出1个18位身份证号码。

输出格式:

按照输入的顺序每行输出1个有问题的身份证号码。这里并不检验前17位是否合理,只检查前17位是否全为数字且最后1位校验码计算准确。如果所有号码都正常,则输出“All passed”。

输入样例1:
4
320124198808240056
12010X198901011234
110108196711301866
37070419881216001X
输出样例1:
12010X198901011234
110108196711301866
37070419881216001X
输入样例2:
2
320124198808240056
110108196711301862
输出样例2:
All passed

注意:这道题前17位中的X算是数字10

#include<iostream>
#include<vector>
using namespace std;
int main(void)
{int N,Sum,flag=1; char m;vector<string> nu;
 int a[17]={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};
 char b[11]={'1','0','X','9','8','7','6','5','4','3','2'};
    cin>>N;
    for(int i=0;i<N;i++)
    {   string str;
        cin>>str;
        nu.push_back(str);
    }

    for(int i=0;i<N;i++)
    {   int t=0,Sum=0;
        for(int j=0;j<17;j++)
          { if(nu[i][j]!='X')
            Sum=Sum+(nu[i][j]-'0')*a[j];
            else
             Sum+=10*a[j];
          }
           t=Sum%11;
           m=b[t];
        if(m==nu[i][17])
         continue;

       else
       {cout<<nu[i]<<endl;
        flag=0;
       }
    }
    if(flag==1)
    cout<<"All passed";
    return 0;
}
如何安装最新版本的 SAP ABAP Development Tool ( ADT ) ,并且能够随时升级 下载链接:https://tools.hana.ondemand.com/#abap 首先安装 Eclipse IDE for Java Developers 找到适合自己操作系统的 Eclipse 安装包: 安装之后,打开Eclipse: Install -> New Softwares, 输入 url:https://tools.hana.ondemand.com/latest 全部安装: 安装完毕之后,新建一个 ABAP Project,本地 SAP GUI 里添加的系统,会自动带出来: 阅读详情

相关推荐

基于单片机智能家居控制系统设计

*单片机设计介绍,基于单片机智能家居控制系统设计。

QQ2193276455的博客 1715

二维数组(理论)

二维数组

以太以北 1万+

百度慧眼人口位置数据:从原理到实战的GIS处理全流程

本文详细解析百度慧眼人口位置数据的处理全流程,从基本原理到实战应用。通过空间网格划分、终端数量统计等技术手段,百度慧眼数据能准确反映人群分布特征。文章涵盖坐标系转换、核密度分析、热力图制作等GIS处理技巧,并分享商业选址、城市规划等典型业务场景的解决方案,帮助读者高效利用这一数据资源。

weixin_30872157的博客 534

二维数组【数组】

一维数组,数组的元素都是内置类型的。如果我们,这时候就是⼆维数组。被称为三维数组。统称 为多维数组。

2402_82767275的博客 6985

Windows Server安装Intel I219-V网卡驱动完整教程

在Windows Server系统上安装Intel I219-V网卡驱动的方法。

小白成长历程 5177

(实战)[re:Invent 2018]-001:赛道分析-(致敬1024)

打印log

Rainbow 2780

C语言学习NO.6-二维数组的概念、创建、初始化、使用、存储

同样通过下标来访问二维数组的元素,例如设 i 为行的下标,j 为列的下标。从输出结果来看,每一行内部的每个元素都是相邻的,地址之间相差4个字节,跨行位置处的两个元素,如:arr[0][4]和arr[1][0]之间也是差4个字节,所以。将一维数组作为数组的元素,这时候就是二维数组,二维数组作为数组元素的数组被称为三维数组,二维数组以上的数组统称为多维数组。二维数组的访问也是使用下标的形式的,二维数组是有行和列的,只要锁定了行和列就能唯一锁定数组中的一个元素。

Z1125994的博客 9067

用 CDS View I_APARToleranceGroup 管理客户与供应商收付差异容差:配置语义、字段解读与 ABAP 落地实践

财务共享服务中心常面临小额差异处理的挑战,SAP通过"客户/供应商容差组"机制实现自动清账规则配置。CDS视图I_APARToleranceGroup将配置数据转化为可查询维度,包含宽限天数、固定现金折扣等关键业务参数。该视图支持按公司代码和容差组查询差异处理策略,可用于报表开发、主数据校验和接口合规检查,帮助财务团队高效管理海量小额交易差异,减少手工操作。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 127

二维数组(Dyadic Array)

本博文对二维数组进行简单介绍,并附部分练习题可供练习巩固,希望对大家有帮助,谢谢

Kaka_csdn14的博客 5584

SAP CRP能力计划详细说明操作及相关配置

2、求助朋友同事的希望破灭后,网上找了资料发现在百度搜索的资料基本都是没有说明白什么才产能计划,都没有详细的操作说明,然后用google去搜索了一些相关的文章,好像也没有详细的文章。然后也去SAP的官网搜索了相关的文章,都是文字性的表述,对系统的配置都没有很大的帮助,很久之前有记得在隐身人的博客中有提到CRP的能力计划的文章,然后试着去找了一下相关的文章。5、首先产能排产肯定涉及的就是是能力的问题,能力第一个能想到的就是工作中心中的能力页签,在流程制造中也叫资源,其实都是一个东西。

我小时候很黑的博客 4519

RK3568实现蓝牙音箱功能

A2DP旨在通过蓝牙连接传输高质量的立体声音频流。它使用的基本压缩算法是SBC(Sub-Band Coding)来减小音频数据的大小,同时保持高音质,SBC压缩虽然效率较低,但是是必须支持的基本备用方案。A2DP还支持其他高级编解码器,例如AAC、aptX和LDAC,这些编解码器比SBC提供更好的音质,但这些编解码器的支持取决于设备本身的支持情况。注意A2DP协议要与AVRCP协议区分开。A2DP是传输音频的,而AVRCP是用来控制音频的。这里我用到的是RK3568 Android11。

leikko的博客 1175

二维数组基本知识

1、二维数组的定义:类型 数组名[行号][列号] eg:int arr[3][4] 2、二维数组的初始化 整体赋值只能在定义的时刻进行 eg:int arr[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}} 3行4列 int arr[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},13} 错误,初始值给太多,因为设置的只有3行 int arr[3][4]={1,2,3,4,5,6,7,8,...

li94263的博客 8万+

eCognition易康操作教程(一):如何利用eCognition易康软件进行影像分割之棋盘分割、四叉树分割、光谱差异分割

进程执行完成后,植被覆盖区域与裸地区域合并了。第三步:清除分割结果,点击“Image Objects”菜单栏,点击“Delete Level(s)”,选中“ResultLevel1”,点击”ok”删除棋盘分割结果。四叉树分割之后,有的正方形大一些,有的正方形小一些,大说明该区域的光谱特性更加均一,而小说明不太均一。Leve:选择运行算法的矢量层名称,这里选择四叉树分割算法得到的矢量层“ResultLevel2”。Image Layer weights:图层权重,这里设置为“1,1,1,1”。

蒹葭苍苍 4608

PAT L1-016 查验身份证

题目 一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。校验码的计算规则如下:首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};然后将计算的和对11取模得到值Z;最后按照以下关系对应Z值与校验码M的值: Z:0 1 2 3 4 5 6 7 8 9 10 M:1 0 X 9 8 7 6 5 4 3 2 现在给定一些...

名字呢? 288

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

PAT L1 016 查验身份证

题目描述: 一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};然后将计算的和对11取模得到值Z;最后按照以下关系对应Z值与校验码M的值: Z:0 1 2 3 4 5 6 7 8 9 10 M:1 0 X 9 8 7 6 5 4 3 2...

菜鸡的水题之路 246

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

PAT-L1-016 查验身份证

  这道题目没什么技巧,主要考虑以下几点: 1.对于前17位中含有非数字字符的,则是有问题的号码。这种有问题的号码不能再计算加权和,否则会出现校验通过的情况 2.该题目的输出不区分重复性,也就是说对于多个有问题的相同的输入,需要对应多个相同的输出。这点最开始的时候我想太多,还排除掉了相同的输出,结果有个案例怎么也通过不了。删掉这段逻辑就好了   L1-016 查验身份证 (15 分) ...

Fighting:Rosa's blog 265

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

PAT L1-016 查验身份证

题目链接(请点击) #include&lt;iostream&gt; char shenfen[100][20]; int quanzhi[17]={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2}; char jiaoyan[11]={'1','0','X','9','8','7','6','5','4','3','2'}; int isok[100]={0}; usi...

thwwu的博客 480

pat L1-016 查验身份证

num = int(input()) flag = True wrong = [] idlist = [] sumi = 0 quan= [7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2] M = ['1','0','X','9','8','7','6','5','4','3','2'] for i in range(num): idlist.append(input()) for idnum in idlist: sumi = 0 for i in .

cindera的刷题记录 186

PAT - 天梯赛 L1-016 查验身份证

一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};然后将计算的和对11取模得到值Z;最后按照以下关系对应Z值与校验码M的值: Z:0 1 2 3 4 5 6 7 8 9 10 M:1 0 X 9 8 7 6 5 4 3 2

yf224的博客 344

PAT打卡--L1-016查验身份证(c++)

原题链接 -这道题其实也是一道简单题,我主要还是用其来学习C++,通过这道题,了解到了c++中的字符和int之间的转换,首先贴上代码吧 #include<iostream> #include<vector> #include<string> using namespace std; int main(){ int n; cin >> n; string s[n]; vector<string > err;//保存错误的号码 for(i.

HarryXu的博客 566

PAT L1-016. 查验身份证

PAT L1-016. 查验身份证

李典金 299

PAT L1 - 016 查验身份证

一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};然后将计算的和对11取模得到值Z;最后按照以下关系对应Z值与校验码M的值: Z:0 1 2 3 4 5 6 7 8 9 10 M:1 0 X 9 8 7 6 5 4 3 2

Shiina Mashiro no youni 791

PAT L1-016 查验身份证 (15 分)

import java.util.Scanner; public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc = new Scanner(System.in); char[] dz = { '1', '0', 'X', '9'...

丢丢丢丢丢~~~ 452

【GPLT】L1-016【PAT乙级】查验身份证

题目描述: 一个合法的身份证号码由17位地区,日期编号和顺序编号加1位校验码组成校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为:{7,9, 10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};然后将计算的和对11取模得到值Z者除外;最后按照以下关系对应ž值与校验码M的值: Z:0 1 2 3 4 5 6 7 8 9 10 M:1 0 X 9 8 7 6 5 4 3 ...

麦芽雪冷萃 2277

PAT-L1-016. 查验身份证

PAT-L1-016

-somelse- 294
下一篇: L1-020. 帅到没朋友
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值