2020年第11届蓝桥杯C/C++B组 第二轮省赛
试题A :门牌制作
【问题描述】
小蓝要为一条街的住户制作门牌号。
这条街一共有 2020 位住户,门牌号从 1 到 2020 编号。小蓝制作门牌的方法是先制作 0 到 9 这几个数字字符,最后根据需要将字符粘贴到门牌上,例如门牌 1017 需要依次粘贴字符 1、 0、 1、 7,即需要 1 个字符 0, 2 个字符 1, 1 个字符 7。
请问要制作所有的 1 到 2020 号门牌,总共需要多少个字符 2?
【答案提交】
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
代码:
#include <stdio.h> #include <stdlib.h> /* run this program using the console pauser or add your own getch, system("pause") or input loop */ int main(int argc, char *argv[]) { int i; int temp; int count=0; for(i=1;i<=2020;i++){ temp = i; while(temp!=0){ if(temp%10==2){ count++; } temp = temp/10; } } printf("%d",count); return 0; }
运行结果:
试题B :既约分数
【问题描述】
如果一个分数的分子和分母的最大公约数是1,这个分数称为既约分数。例如,3/4 , 5/2 , 1/8 , 7/1都是既约分数。请问,有多少个既约分数,分子和分母都是1 到2020 之间的整数(包括1和2020)?
【答案提交】
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
代码:
#include <stdio.h> #include <stdlib.h> /* run this program using the console pauser or add your own getch, system("pause") or input loop */ // 辗转相除法求最大公约数 int gcd(int a, int b){ int t; while(b!=0){ t = a%b; a = b; b = t; } return a; } int main(int argc, char *argv[]) { int i,j; int count=0; for(i=1;i<=2020;i++){ for(j=1;j<=2020;j++){ if(gcd(i,j)==1){ count++; } } } printf("%d",count); return 0; }
运行结果:
试题F :成绩统计
【问题描述】
小蓝给学生们组织了一场考试,卷面总分为 100 分,每个学生的得分都是一个 0 到 100 的整数。如果得分至少是 60 分,则称为及格。如果得分至少为 85 分,则称为优秀。
请计算及格率和优秀率,用百分数表示,百分号前的部分四舍五入保留整数。
【输入格式】
输入的第一行包含一个整数 n,表示考试人数。接下来 n 行,每行包含一个 0 至 100 的整数,表示一个学生的得分。
【输出格式】
输出两行,每行一个百分数,分别表示及格率和优秀率。百分号前的部分四舍五入保留整数。
【样例输入】
7
80
92
56
74
88
100
0
【样例输出】
71%
43%
【评测用例规模与约定】
对于50% 的评测用例, 1 ≤ n ≤ 100。
对于所有评测用例,1 ≤ n ≤10000。
代码:
#include <stdio.h> #include <stdlib.h> /* run this program using the console pauser or add your own getch, system("pause") or input loop */ int main(int argc, char *argv[]) { int n; int a[10000]; int i; int pass_count=0; int good_count=0; int temp; int pass_rate; int good_rate; scanf("%d",&n) ; for(i=0;i<n;i++){ scanf("%d",&a[i]); } for(i=0;i<n;i++){ if(a[i]>=60){ pass_count++; } if(a[i]>=85){ good_count++; } } temp = pass_count*100%n; if(temp*2>=n){ // 及格率四舍五入 pass_rate = pass_count*100/n+1; }else{ pass_rate = pass_count*100/n; } temp = good_count*100%n; if(temp*2>=n){ // 优秀率四舍五入 good_rate = good_count*100/n+1; }else{ good_rate = good_count*100/n; } printf("%d%c\n",pass_rate,'%'); printf("%d%c",good_rate,'%'); return 0; }
运行结果:
试题G :回文日期
【问题描述】
2020 年春节期间,有一个特殊的日期引起了大家的注意:2020年2月2日。因为如果将这个日期按“yyyymmdd” 的格式写成一个8 位数是20200202,
恰好是一个回文数。我们称这样的日期是回文日期。
有人表示20200202 是“千年一遇” 的特殊日子。对此小明很不认同,因为不到2年之后就是下一个回文日期:20211202 即2021年12月2日。
也有人表示20200202 并不仅仅是一个回文日期,还是一个ABABBABA型的回文日期。对此小明也不认同,因为大约100 年后就能遇到下一个ABABBABA 型的回文日期:21211212 即2121 年12 月12 日。算不上“千年一遇”,顶多算“千年两遇”。
给定一个8 位数的日期,请你计算该日期之后下一个回文日期和下一个ABABBABA型的回文日期各是哪一天。
【输入格式】
输入包含一个八位整数N,表示日期。
【输出格式】
输出两行,每行1 个八位数。第一行表示下一个回文日期,第二行表示下
一个ABABBABA 型的回文日期。
【样例输入】
20200202
【样例输出】
20211202
21211212
【评测用例规模与约定】
对于所有评测用例,10000101 ≤ N ≤ 89991231,保证N 是一个合法日期的8位数表示。
代码:
#include <stdio.h> #include <stdlib.h> /* run this program using the console pauser or add your own getch, system("pause") or input loop */ // 回文日期 int back_date(int n){ int inverse_before4; // 逆序日期的前四位 inverse_before4 = n%10*1000+n/10%10*100+n/100%10*10+n/1000; return n*10000 + inverse_before4; // 形成回文日期 } // AB型回文日期 int ab_back_date(int n){ int ab_inverse_before2; // 逆序日期的前两位 ab_inverse_before2 = n%10*10+n/10; return n*1010000+ab_inverse_before2*101; // 形成AB型回文日期 } int main(int argc, char *argv[]) { int n; int backDate; int abBackDate; scanf("%d",&n); if(back_date(n/10000)>=n){ backDate = back_date(n/10000+1); // 大于等于本身,则年份+1,生成回文日期 }else{ backDate = back_date(n/10000); } if(ab_back_date(n/1000000)>=n){ abBackDate = ab_back_date(n/1000000+1); // // 大于等于本身,则年份开头两位+1,生成回文日期 }else{ abBackDate = ab_back_date(n/1000000); } printf("%d\n",backDate); printf("%d",abBackDate); return 0; }
运行结果:
原文地址:https://www.cnblogs.com/ZZG-GANGAN/p/14669860.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- CodeIgniter框架实现的整合Smarty引擎DEMO示例
- PHP微信支付功能示例
- PHP中ltrim()函数的用法与实例讲解
- Laravel 中创建 Zip 压缩文件并提供下载的实现方法
- pytorch随机采样操作SubsetRandomSampler()
- Pytorch上下采样函数–interpolate用法
- scrapy框架携带cookie访问淘宝购物车功能的实现代码
- 浅析Python __name__ 是什么
- PHP判断访客是否手机端(移动端浏览器)访问的方法总结【4种方法】
- PHP后期静态绑定实例浅析
- php+mysql开发中的经验与常识小结
- PHP时间戳和日期相互转换操作实例小结
- php json转换相关知识(小结)
- PHP单例模式应用示例【多次连接数据库只实例化一次】
- 踩坑:pytorch中eval模式下结果远差于train模式介绍