# JJU-干干

试题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;
}

运行结果:

试题C 蛇形填数

【问题描述】

如下图所示,小明用从1 开始的正整数“蛇形”填充无限大的矩阵。

容易看出矩阵第二行第二列中的数是5。请你计算矩阵中第20 行第20 列的数是多少?

【答案提交】

这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一
个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

代码:

#include <stdio.h>
#include <stdlib.h> /* run this program using the console pauser or add your own getch, system("pause") or input loop */ /*
将蛇形轨迹拉直:即计算第i斜行的长度 ,而我们所求的数是斜行的中间数,其=斜行末尾数-(第i斜行/2)
*/ int main(int argc, char *argv[]) {
int i,j;
int a[10000];
int num=0;
int count=0;
for(i=1;i<=40;i++){
for(j=1;j<=i;j++){
num++;
}
if(i%2!=0){
printf("%d ",num-(i/2));
count++;
a[count] = num-(i/2);
}
}
printf("\n%d",a[20]);
return 0;
}

运行结果:

 试题D :跑步训练

【问题描述】
小蓝每天都锻炼身体。
正常情况下,小蓝每天跑 1 千米。如果某天是周一或者月初(1 日),为了激励自己,小蓝要跑 2 千米。如果同时是周一或月初,小蓝也是跑 2 千米。小蓝跑步已经坚持了很长时间,从 2000 年 1 月 1 日周六(含)到 2020 年10 月 1 日周四(含)。请问这段时间小蓝总共跑步多少千米?

【答案提交】
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

代码:

 

#include <stdio.h>
#include <stdlib.h> /* run this program using the console pauser or add your own getch, system("pause") or input loop */ // 是否为闰年
int leap_year(int y){
if((y%4==0&&y%100!=0)||y%400==0){
return 1;
}else{
return 0;
}
} int main(int argc, char *argv[]) {
int day[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int y,m,d;
int w=6; // 起始天2000/1/1是星期六,所以初始为6
int mileage=0; // 里程
for(y=2000;y<=2020;y++){
for(m=1;m<=12;m++){
for(d=1;d<=day[m]+((m==2)?leap_year(y):0);d++,w=w%7+1){
mileage++;
if(d==1||w==1){ // 1日/周一多跑一公里
mileage++;
}
if(y==2020&&m==10&&d==1){
printf("%d",mileage) ;
}
} }
}
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;
}

运行结果:

最新文章

  1. 如何利用花生壳和VisualSVN Server建立远程代码仓库
  2. hdu 4411 最小费用流
  3. Linux安装mysql源码
  4. ServletConfig对象 【通过此对象获取到web.xml中的信息】
  5. shopnc数据库 批量修改商品价格
  6. 【PHP】文件写入和读取详解
  7. iOS自动化环境搭建——macaca
  8. Javascript之pixi框架学习
  9. Server Tomcat v7.0 Server at localhost failed to start.
  10. Swift的基础之UILabel控件
  11. XSS原理及防范
  12. QCAD 怎么把多余的线剪掉
  13. hexo博客添加功能
  14. Spring框架学习03——Spring Bean 的详解
  15. 修改JEECG项目浏览器标题
  16. Composer 中文镜像 Lavavel-china 公益项目
  17. [java] Unsupported major.minor version 51.0 错误解决方案
  18. bootstrap navbar items alignment
  19. Mybatis Batch 批量操作
  20. 【动态规划】POJ2385-Apple Catching

热门文章

  1. springMVC学习day02
  2. IDEA 项目运行内存设置
  3. Delphi 从字符串中提取数字
  4. 幻方(4n+2暂时看不懂)
  5. Outlook配置文件位置
  6. nginx 日志分析之 access.log 格式详解
  7. uniapp安卓本地文件读取(html5+)
  8. mysql问题汇总含解决方案
  9. 查询最上活动的activity
  10. 原生js实现折线图