8月15日程序设计实训个人编程

7-1 出生年


以上是新浪微博中一奇葩贴:“我出生于1988年,直到25岁才遇到4个数字都不相同的年份。”也就是说,直到2013年才达到“4个数字都不相同”的要求。本题请你根据要求,自动填充“我出生于y年,直到x岁才遇到n个数字都不相同的年份”这句话。

输入格式:
输入在一行中给出出生年份y和目标年份中不同数字的个数n,其中y在[1, 3000]之间,n可以是2、或3、或4。注意不足4位的年份要在前面补零,例如公元1年被认为是0001年,有2个不同的数字0和1。

输出格式:
根据输入,输出x和能达到要求的年份。数字间以1个空格分隔,行首尾不得有多余空格。年份要按4位输出。注意:所谓“n个数字都不相同”是指不同的数字正好是n个。如“2013”被视为满足“4位数字都不同”的条件,但不被视为满足2位或3位数字不同的条件。

输入样例1:
1988 4
输出样例1:
25 2013
输入样例2:
1 2
输出样例2:
0 0001

这题碎碎念有点长:开始写这道题的时候因为时间很紧迫加上脑子抽筋,就把题目理解成输入年份的每一位数字和输出年份的每一个数字都不一样(1988到2000)。都写好了提交了好几次才发现我把题理解错了!然后又写,只部分通过,过了提交时间之后我去搜别人的代码我才发现:不一样的数字要绝对的等于你输入的那个 n,不能大于等于!

#include <stdio.h>
int main(){   int a1,a2,a3,a4;int y, n;  scanf("%d %d",&y,&n);int i, count = 0;   for(i=y; i<3001; i++){       count = 1;       a1 = i/1000;      a2 = i/100%10;       a3 = i/10%10;       a4 = i%10;if(a1 != a2 && a1 != a3 && a1 != a4) count++;      if(a2 != a3 && a2 != a4) count++;        if(a3 != a4) count++;if(count==n) {printf("%d ",i-y);break; } }   printf("%04d\n",i);      return 0;
}


ssn:没有写测试点提醒就很难,不知道自己哪错了。最后试出来是边界的问题,把循环改成i<4000就全对了。

7-2 查验身份证

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

碎碎念:没做出来原因:一,上面那道题耽误时间了。二,语文水平太差短时间没有读明白题意(也比上一题理解错了好)。三,我竟然不明白加权求和是什么意思!!!淦!
不保证全对:

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

pta——出生年,查验身份证(c语言)相关推荐

  1. PTA 1031 查验身份证 (c语言)

    1031 查验身份证 (15 分) 代码如下: #include<string.h> int main() {int quan[17]={7,9,10,5,8,4,2,1,6,3,7,9, ...

  2. C++学习之路 | PTA乙级—— 1031 查验身份证 (15 分)(精简)

    1031 查验身份证 (15 分) 一个合法的身份证号码由17位地区.日期编号和顺序编号加1位校验码组成.校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2 ...

  3. pta乙级1031查验身份证(AC)

    思路: 1.把18位的身份证分成18个字符 2.先判断前17位是否全为数字,若不是,直接输出这些字符:若是,直接计算出他们加权的结果,得出Z,与M比较. #include<bits/stdc++ ...

  4. PTA平台,查验身份证

    一个合法的身份证号码由17位地区.日期编号和顺序编号加1位校验码组成.校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8, ...

  5. 重启c语言-查验身份证

    PTA第8题-查验身份证 一个合法的身份证号码由17位地区.日期编号和顺序编号加1位校验码组成.校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6, ...

  6. 查验身份证(C语言和Java语言)

    7-2 查验身份证 输入格式 输出格式 输入样例 输出样例 输入样例 输出样例 代码展示 C语言 Java 输出结果 注意点 一个合法的身份证号码由17位地区.日期编号和顺序编号加1位校验码组成.校验 ...

  7. PTA第3章-2 查验身份证 (15 分)

    第3章-2 查验身份证 (15 分) 一个合法的身份证号码由17位地区.日期编号和顺序编号加1位校验码组成.校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4, ...

  8. 查验身份证(c语言)

    7-7 查验身份证(15 分) 一个合法的身份证号码由17位地区.日期编号和顺序编号加1位校验码组成.校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1 ...

  9. C语言——实验一:查验身份证(身份证号码的校验码)

    前言 为什么我这个萌新要来写这篇文章?事情还要从上周三说起. 在上周三的程序设计基础课上,我们老师给我们全班同学布置了一项题为<实验一:查验身份证>的实验作业,这也是我第一次接触到实验作业 ...

最新文章

  1. 【入门篇】如何正确使用机器学习中的训练集、验证集和测试集?
  2. 列出对象锁(lock)信息及其被杀的会话(sid,serial#)信息
  3. qt 程序异常结束。_博声医疗:QT间期,QT间期正常范围
  4. Vmware Vsphere虚拟化技术:6.7新特性介绍
  5. Win7 od下send断点
  6. ExtJS Grid 与 Asp.NET 通信
  7. maven项目多模块部署的时候构建顺序
  8. linux内容对齐的快捷键,linux第一波命令总结
  9. mysql where is_MySQL中条件放在where后面与放在on后面的区别
  10. mingw编译boost中bjam的toolset问题
  11. matlab plot symbol,导入时出错matlab.引擎不导入ubuntu16.04上python3.5.2中的matplotlib。为什么?...
  12. html网站地图在线生成,网站地图(sitemap)在线制作工具
  13. Vue2学习笔记:计算属性(computed)
  14. hinernate中持久化对象的状态
  15. oracle 查看数据库启动时间同步,oracle rac CTSS时钟同步模式转换为NTP同步模式的实施记录(4)...
  16. 【图像配准】基于matlab GUI SIFT图像配准拼接【含Matlab源码 854期】
  17. AC日记——【模板】二分图匹配 洛谷 P3386
  18. 麒麟系统安装打印机共享_国产操作系统麒麟——文档打印 解决方案
  19. 一个简单的三层架构之仓库管理系统的入库出库
  20. libtorrent java_关于libtorrent库的安装

热门文章

  1. 计算机一个字节是几位,电脑的一个字节等于多少位??
  2. Xptah瞄准未来医疗,计划用动捕技术革新老年人康复治疗方式
  3. 和利时scada系统服务器参数,设备数据采集之SCADA系统
  4. pikachu SQL注入 (皮卡丘漏洞平台通关系列)
  5. 如何学习图像处理(计算机视觉)的一些思考与分享
  6. 纯前端实现登记照压缩宽高体积大小和换装功能
  7. 使用PageInfo分页工具类
  8. chromium 37 chrome Native messaging 本地消息机制
  9. 美团王兴---我在努力成为恒星
  10. 【新书推荐】卡神之路,不过如此