首页 > 编程语言 >pta程序设计辅助平台练习题

pta程序设计辅助平台练习题

时间:2023-04-21 20:12:33浏览次数:31  
标签:练习题 10 17 号码 int pta 校验码 身份证 程序设计

一个合法的身份证号码由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

#include <stdio.h>
int main(){
    int N;
    int sax[]={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};
    char num[]={'1','0','X','9','8','7','6','5','4','3','2'};
    scanf("%d",&N);
    char ID[19];
    int d,sum,count=0;
    for(int i=0;i<N;i++){
        scanf("%s",ID);
        for(d=0,sum=0;d<17&&ID[d]>='0'&&ID[d]<='9';d++){
            sum=sum+(ID[d]-'0')*sax[d];
        }
        if(d==17&&ID[17]==num[sum%11]){
            count++;
        }else{
            puts(ID);//等价printf("%s\n",ID);
        }
    }
    if(count==N){
        printf("All passed");
    }
    return 0;
}

 

标签:练习题,10,17,号码,int,pta,校验码,身份证,程序设计
From: https://www.cnblogs.com/Lyh3012648079/p/17341634.html

相关文章

  • 团体程序设计天梯赛 L1-064 估值一亿的AI核心代码 题解
    思路L1-064估值一亿的AI核心代码题意有一点不太清晰的,就是原文中的'I',无论是否是单独的,都不能变为小写。如果是单独的'I'再被转化为'you'。这种模拟题就需要每个的分分清清楚楚的,不要都揉到一块儿,容易写错。具体还有些需要注意的在代码里注释着了。代码#include<iostream>......
  • Luggage Pickup PTA(栈和队列的使用)
    题目Whenaflightarrives,thepassengerswillgototheArrivalsareatopickuptheirbaggagefromaluggageconveyorbelt(行李传送带).Nowassumethatwehaveaspecialairportthathasonlyonepickupwindowforeachconveyorbelt.Thepassengersareaske......
  • 迁移学习(PAT)《Pairwise Adversarial Training for Unsupervised Class-imbalanced Dom
    论文信息论文标题:PairwiseAdversarialTrainingforUnsupervisedClass-imbalancedDomainAdaptation论文作者:WeiliShi,RonghangZhu,ShengLi论文来源:KDD2022论文地址:download 论文代码:download视屏讲解:click1摘要提出问题:类不平衡问题;解决方法:提出了一......
  • 华中农业大学2023年十二届程序设计竞赛(补题)
    题目地址B.写信题意:有n个信封和n封信,问全部装错有多少种可能Solution全错排问题,对于i=k的情况,我们可以从i=k-1和i=k-2转移过来一种是k-1个全错排,然后从前面k-1个选出一个信封与第k个交换另一种是任选一个j,有1<=j<=k-1放在k,这样除了k和j以外还有k-2个数进行全错位排列,这样我......
  • 2022年中国大学生程序设计竞赛女生专场-比赛题解
    比赛链接:Dashboard-2022年中国大学生程序设计竞赛女生专场-CodeforcesA.减肥计划(模拟)模拟,如果队列第一个人体重是最大的了,则这个人的位置不会再变,直接输出即可。#include<bits/stdc++.h>usingnamespacestd;usingi64=longlong;intmain(){ios::sync_with_......
  • linux IPtable防火墙 禁止和开放端口
    评:1、关闭所有的INPUTFORWARDOUTPUT只对某些端口开放。下面是命令实现:iptables-PINPUTDROPiptables-PFORWARDDROPiptables-POUTPUTDROP再用命令iptables-L-n查看是否设置好,好看到全部DROP了这样的设置好了,我们只是临时的,重启服务器还是会恢复......
  • C/C++《程序设计基础(C语言)课程设计》[2023-04-20]
    C/C++《程序设计基础(C语言)课程设计》[2023-04-20]《程序设计基础(C语言)课程设计》课程说明及动员《程序设计基础(C语言)课程设计》指导教师组目录课程目的>>课程要求>>团队题目>>实施方案>>课程设计报告>>考核与成绩评定方法>>本学期实施安排>>其他说明课程目的......
  • 24道Python面试练习题
    1.简述函数式编程答:在函数式编程中,函数是基本单位,变量只是一个名称,而不是一个存储单元。除了匿名函数外,Python还使用fliter(),map(),reduce(),apply()函数来支持函数式编程。2.什么是匿名函数,匿名函数有什么局限性答:匿名函数,也就是lambda函数,通常用在函数体比较简单的函数上。......
  • CentOS linux关闭iptables防火墙
    评:linux服务器下防火墙为iptables组件,在安装一些软件的时候,iptables防火墙会阻止我们一些必要的连接,所以,我代购的美国服务器,荷兰服务器等海外服务器iptables初始状态为关闭。如果有一些服务器没有关闭iptables,并且你还特别想关闭它,哪么以下命令,你可以能用的上。查看iptables状......
  • 福建省练习题
    A-1:登录安全加固(windows、linux)1.密码策略(windows、linux)(1)最小密码长度不少于8个宁符、密码最短使用期限30天:linuxcd/etc/vimlogin.defs/PASS修改PASS_MIN_DAYS30cd/etc/pam.dvimcommon-passwordpassword[success=1default=ignore]pam_unix.soo......