2021年HNUCM信息科学与工程学院第四届新生赛——热身赛

2024-01-17 15:59

本文主要是介绍2021年HNUCM信息科学与工程学院第四届新生赛——热身赛,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

2021年HNUCM信息科学与工程学院第四届新生赛——热身赛

A:建党百周年

题目描述

2021年是伟大的中国共产党建党百周年。现在需要你编写一个程序实现如下功能:
输入一个正整数N,输出N个“伟大的中国共产党万岁!”。

输入

单组输入。
输入一个正整数N,N<=100。

输出

输出N个“伟大的中国共产党万岁!”。

样例输入
2
样例输出
伟大的中国共产党万岁!
伟大的中国共产党万岁!

水题

#include<stdio.h>
int main()
{int n;scanf("%d", &n);for (int i = 0; i < n; i++)printf("伟大的中国共产党万岁!\n");return 0;
}

B:菜鸡驿站

题目描述

HNUCM的TC同学在学校开设了一个收发快递的“菜鸡驿站”,HNUCM一共有n栋宿舍楼,TC需要逐一把快递送到每一栋宿舍楼。
因为刚过完双十一,快递实在是太多太多了,TC每一次只能送一栋宿舍楼,然后再返回驿站取快递来送到下一栋宿舍楼。
现在给出驿站到每一栋宿舍楼的单程时间(单位:分钟,假设来回所需的时间相等),请问TC送完所有快递并返回驿站一共需要多少分钟的时间?

输入

单组输入,每组第1行输入一个正整数n表示宿舍楼的数量(n<=50)。
第2行输入n个正整数分别表示驿站到每一栋宿舍楼所需时间T(T<=109)(单位:分钟)。

输出

送完所有快递并返回到驿站所需的总时间(分钟)。

样例输入
5
3 4 5 6 7
样例输出
50

写题解的时候有被笑到,敢情我从去年到今年,一直把题目名称看错,一直看成菜鸟驿站,刚才发现是菜鸡驿站

新手很容易在这里犯错误,就是数据范围的问题,最终结果超出了int显示的范围,所以答案存储时我们要用double存储(long long,float应该也行)

#include<stdio.h>
int main()
{double ans=0, x;int n;scanf("%d", &n);for (int i = 0; i < n; i++)scanf("%lf", &x), ans += 2 * x;printf("%.0lf\n", ans);return 0;
}

C: 含1素数

题目描述

小米喜欢素数,他的幸运数字是1。因此,他特别特别喜欢包含数字1的素数,例如11、13、17、19、31等含1素数。
你能否编写一个程序,帮助小米计算出正整数N和正整数M之间存在多少个含1素数(包含N和M)?(1<=N<M<=10^6)

输入

单组输入。
输入两个正整数N和M(1<=N<M<=10^6)。

输出

输出N和M之间含1素数的个数(包含N和M)。

样例输入
10 20
样例输出
4

题目意思很简单,素数的判断小优化了一下,不知道的同学可以这么想,要是一个整数n可以分解为两个整数a和b的乘积,如果a小于等于根号n那么b必然大于等于根号n,那我们只要在小于等于根号n的范围内查找是否可以整除就行了,因为大于相当于重复查找了一次,只不过a和b反过来了而已。除了这个之外,还有两种方法可以求素数:六素数法和筛法,可以去学习一下,其中筛法的思想在后面的题解中有所体现。

#include<stdio.h>
#include<math.h>
int judgeprime(int n)
{for(int i=2;i*i<=n;i++)if(n%i==0)return 0;return 1;
}
int include(int n)
{if(n==0)return 0;if(n%10==1)return 1;elsereturn include(n/10);
}
int main()
{int n,m;int num=0;scanf("%d%d",&n,&m);for(int i=n<=10?11:n;i<=m;i++)if(judgeprime(i))if(include(i))num++;printf("%d\n",num);return 0;
}

D:二三五七

题目描述

自从学了素数,小米喜欢上了数字2、3、5和7。当然,如果一个数字里面只出现2、3、5和7这四个数字,他也一样喜欢,例如22、223、2357、22355、23577。
现在他希望你能够帮他编写一个程序,计算出由2、3、5、7这四个数字组成(每个数字可以出现0次或多次,最小为2)的由小到大的第N个正整数,包括2、3、5和7这四个一位数。

输入

单组输入。
输入一个正整数N。(N<=10^3)

输出

输出仅由2、3、5、7这四个数字组成(每个数字可以出现0次或多次,最小为2),并按照由小到大的次序排列后的第N个正整数。

样例输入
5
样例输出
22

按照题意不断取余数就行,这里使用了递归代码

#include<stdio.h>
int judge(int n)
{if (n == 0)return 1;if (n % 10 == 2 || n % 10 == 3 || n % 10 == 5 || n % 10 == 7)return judge(n / 10);elsereturn 0;
}
int main()
{int n = 2;int num = 0,x;scanf("%d", &x);while (1){if (judge(n)){num++;if (num == x){printf("%d", n);break;}}n++;}return 0;
}

E:n盏灯

题目描述

有n盏灯,序号为1到n。在初始状态下,所有的开关都是关的。
有n个开关控制这n盏灯,第i个开关控制第i盏灯。
现在从1开始计数,每遇到一个素数就把该素数对应的倍数序号的开关朝相反的方向拨一下,一直到最后一个小于等于n的素数为止。请统计最后有多少盏灯是开的?

输入

多组输入,每组输入一个n(2<=n<=106)。

输出

每组数据,输出开的灯的盏数

样例输入
10
样例输出
7

这题可以用到筛法的思想,这里对着代码大概说明一下思路

首先把2的倍数对应的灯拨动次数全部加一,然后是3的倍数,接着到达了4,我们会发现代表4的拨动次数数组已经不是0了,那么就说明4一定不是素数,因为肯定是除了1以外的小于它的某个数的倍数,同理6,8,9都不是素数,当然,如果发现某个灯的拨动次数为0,那么它不是所有除了1以外的所有数的倍数,它的因子只有1和它本身。这样我们就按照题意拨动了所有的开关,最后被拨动次数为奇数,灯是亮着的。

#include<stdio.h>
#include<string.h>
int num[1000010];
int main()
{int n;while (~scanf("%d", &n)){memset(num, 0, sizeof(num));for (int i = 2; i <= n; i++)if (num[i] == 0)for (int j = i; j <= n; j += i)num[j]++;int ans = 0;for (int i = 1; i <= n; i++){if (num[i] % 2 == 1)ans++;}printf("%d\n", ans);}return 0;
}

F:电子手表

题目描述

一个电子手表,可以显示时分秒,且每一个都采用两位阿拉伯数字。
现在输入一个开始时间和一个结束时间,例如00:00:00和10:20:59。
请统计从开始时间到结束时间(包括开始时间和结束时间)之间在屏幕上显示0的个数。
注意:每秒钟为1个计数单位,例如00:00:00到00:00:01一共显示了11个0。
输入保证开始时间和结束时间的合法性,即0<=小时<=23,0<=分钟<=59,0<=秒钟<=59。

输入

开始时间和结束时间,格式均为HH:MM:SS(HH表示小时,MM表示分钟,SS表示秒钟)。

输出

从开始时间到结束时间之间在屏幕上显示0的个数(包括开始时间和结束时间)。

样例输入
00:00:00
00:00:10
样例输出
56

一个模拟题,按照日常生活中的秒数满了60进1,分钟数满了60进1就行了,注意下面scanf的用法,循环起始条件的判定和逻辑顺序

#include<stdio.h>
#include<string.h>
int main()
{int h1, h2, m1, m2, s1, s2;scanf("%d:%d:%d", &h1, &m1, &s1);scanf("%d:%d:%d", &h2, &m2, &s2);int ans = 0;for (int i = h1 * 3600 + m1 * 60 + s1; i <= h2 * 3600 + m2 * 60 + s2; i++)//按照秒数算{m1 += s1 / 60;s1 %= 60;h1 += m1 / 60;m1 %= 60;//注意先后顺序if (h1 == 0)ans += 2;else if (h1 < 10||h1%10==0)ans += 1;if (m1 == 0)ans += 2;else if (m1<10||m1 % 10 == 0)ans += 1;if (s1 == 0)ans += 2;else if (s1 < 10 || s1 % 10 == 0)ans += 1;s1++;}printf("%d\n", ans);return 0;
}

G:超大型 LED 显示屏

题目描述

你是学生会体育部长,负责组织一年一度的校篮球比赛。马上就要决赛了,你希望吸引更多的 人来看比赛,因此打算更新一下设备,用一个超大的 LED屏幕来显示比分。当然,电也不是 不要钱的,所以你决定先分析一下往年的比赛,估计一下大概要耗多少电。

img

如上图,每个数字由 7条线段组成,每条亮着的线段每秒钟耗电量为 1个单位。线段不亮的时 候不耗电。为了省电,比分不显示前导 0(不过 0分的时候要显示数字 0)。

你的 LED显示屏共包含 6个数字,即双方的比分各有 3 位数。

输入

输入包含不超过 100组数据。每组数据第一行为"START hh:mm:ss",表示比赛开始时刻为 hh:mm:ss。最后一行为"END hh:mm:ss",即比赛结束时刻。二者之间至少会有一个 SCORE信 息,格式为"SCORE hh:mm:ss team score",其中 team要么是"home"(主场)要么是"guest"(客 场), score表示得分,为 1,2或者 3。这些信息保证按照时间从早到晚的顺序排列,且任意两 条 SCORE信息的时刻均不相同。比赛开始时间不会早于 9:00,结束时间不会晚于同一天的 21:00。注意,如果比赛开始时间为 09:00:00,结束时间为 09:00:01,比赛长度为 1秒钟,而不 是 2秒钟。

输出

对于每组数据,输出测试点编号和总耗电量。

样例输入 [
START 09:00:00
SCORE 09:01:05 home 2
SCORE 09:10:07 guest 3
END 09:15:00
START 09:00:00
SCORE 10:00:00 home 1
SCORE 11:00:00 home 1
SCORE 12:00:00 home 1
SCORE 13:00:00 home 1
SCORE 14:00:00 home 1
SCORE 15:00:00 home 1
SCORE 16:00:00 home 1
SCORE 17:00:00 home 1
SCORE 18:00:00 home 1
SCORE 19:00:00 home 1
SCORE 20:00:00 home 1
END 21:00:00
样例输出
Case 1: 9672
Case 2: 478800

第十届湖南省赛的模拟题,细节把控不好就会代码很臃肿,逻辑也会越写越乱

不做过多解释,代码配有注释,仔细理解

#include <stdio.h>
int a[10] = {6, 2, 5, 5, 4, 5, 6, 3, 7, 6}; //记录每个数字需要亮着的线段数
int get(int x)
{ //利用一个函数来计算分数所对应的线条数int ans = 0;if (x == 0)return 6;while (x){ans += a[x % 10];x /= 10;}return ans;
}
int main()
{int a, b, c, aa, bb, cc, cnt = 0;char s1[30], s2[30], s3[30];while (~scanf("%s %d:%d:%d", s1, &a, &b, &c)){int v1 = 0, v2 = 0, v, ans = 0;//ans是总的耗电量,v1是主场分数,v2是客场分数while (1){//不断地输入直到遇到END为止scanf("%s %d:%d:%d", s2, &aa, &bb, &cc);ans += (get(v1) + get(v2)) * ((aa - a) * 3600 + (bb - b) * 60 + (cc - c));//我们要记录更新分数后与更新分数前所消耗的电量if (s2[0] == 'E')break;scanf("%s %d", s3, &v);if (s3[0] == 'h')v1 += v;//更新主场分数elsev2 += v;//更新客场分数a = aa, b = bb, c = cc;}printf("Case %d: %d\n", ++cnt, ans);}return 0;
}

这篇关于2021年HNUCM信息科学与工程学院第四届新生赛——热身赛的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/616532

相关文章

GPU 计算 CMPS224 2021 学习笔记 02

并行类型 (1)任务并行 (2)数据并行 CPU & GPU CPU和GPU拥有相互独立的内存空间,需要在两者之间相互传输数据。 (1)分配GPU内存 (2)将CPU上的数据复制到GPU上 (3)在GPU上对数据进行计算操作 (4)将计算结果从GPU复制到CPU上 (5)释放GPU内存 CUDA内存管理API (1)分配内存 cudaErro

2021-8-14 react笔记-2 创建组件 基本用法

1、目录解析 public中的index.html为入口文件 src目录中文件很乱,先整理文件夹。 新建components 放组件 新建assets放资源   ->/images      ->/css 把乱的文件放进去  修改App.js 根组件和index.js入口文件中的引入路径 2、新建组件 在components文件夹中新建[Name].js文件 //组件名首字母大写

2021-08-14 react笔记-1 安装、环境搭建、创建项目

1、环境 1、安装nodejs 2.安装react脚手架工具 //  cnpm install -g create-react-app 全局安装 2、创建项目 create-react-app [项目名称] 3、运行项目 npm strat  //cd到项目文件夹    进入这个页面  代表运行成功  4、打包 npm run build

[SWPUCTF 2021 新生赛]web方向(一到六题) 解题思路,实操解析,解题软件使用,解题方法教程

题目来源 NSSCTF | 在线CTF平台因为热爱,所以长远!NSSCTF平台秉承着开放、自由、共享的精神,欢迎每一个CTFer使用。https://www.nssctf.cn/problem   [SWPUCTF 2021 新生赛]gift_F12 这个题目简单打开后是一个网页  我们一般按F12或者是右键查看源代码。接着我们点击ctrl+f后快速查找,根据题目给的格式我们搜索c

哈理工新生赛热身赛解题报告

本次热身赛6道题目,由于没有官方解题报告,自己写了一个山寨版的解题报告,希望对学弟学妹有所帮助 期中两到签到题该校OJ上没有挂出,我在田大神的帮助下a掉了其它四题,解题报告如下所示 线段 Time Limit: 1000 MSMemory Limit: 32768 K Total Submit: 10(6 users)Total Accepted: 7(6 users)Rating: S

【面试个人成长】2021年过半,社招和校招的经验之谈

点击上方蓝色字体,选择“设为星标” 回复”资源“获取更多资源 长话短说。 今天有点晚,因为一些事情耽误了,文章发出来有些晚。 周末的时候和一个知识星球的读者1对1指导了一些应届生的学习路径和简历准备。 因为马上就要秋招了,有些公司的提前批已经启动。2021年已经过半了,各位。时间真是太快了。 正好周末抽了一点时间看之前买的关于面试的电子书,针对校招和社招的面试准备和需要注意的点在啰嗦几句。 校

【硬刚大数据之面试篇】2021年从零到大数据专家面试篇之Spark篇

欢迎关注博客主页:https://blog.csdn.net/u013411339 欢迎点赞、收藏、留言 ,欢迎留言交流! 本文由【王知无】原创,首发于 CSDN博客! 本文首发CSDN论坛,未经过官方和本人允许,严禁转载! 本文是对《【硬刚大数据之学习路线篇】2021年从零到大数据专家的学习指南(全面升级版)》的面试部分补充。 硬刚大数据系列文章链接: 2021年从零到大数据专家的

【硬刚大数据之面试篇】2021年从零到大数据专家面试篇之消息队列篇

📢欢迎关注博客主页:https://blog.csdn.net/u013411339 📢欢迎点赞 👍 收藏 ⭐留言 📝 ,欢迎留言交流! 📢本文由【王知无】原创,首发于 CSDN博客! 📢本文首发CSDN论坛,未经过官方和本人允许,严禁转载! 本文是对《【硬刚大数据之学习路线篇】2021年从零到大数据专家的学习指南(全面升级版)》的面试部分补充。 硬刚大数据系列文章链接:

【硬刚大数据之面试篇】2021年从零到大数据专家面试篇之SparkSQL篇

📢欢迎关注博客主页:https://blog.csdn.net/u013411339 📢欢迎点赞 👍 收藏 ⭐留言 📝 ,欢迎留言交流! 📢本文由【王知无】原创,首发于 CSDN博客! 📢本文首发CSDN论坛,未经过官方和本人允许,严禁转载! 本文是对《【硬刚大数据之学习路线篇】2021年从零到大数据专家的学习指南(全面升级版)》的面试部分补充。 硬刚大数据系列文章链接:

【硬刚大数据之面试篇】2021年从零到大数据专家面试篇之Hadoop/HDFS/Yarn篇

📢欢迎关注博客主页:https://blog.csdn.net/u013411339 📢欢迎点赞 👍 收藏 ⭐留言 📝 ,欢迎留言交流! 📢本文由【王知无】原创,首发于 CSDN博客! 📢本文首发CSDN论坛,未经过官方和本人允许,严禁转载! 本文是对《【硬刚大数据之学习路线篇】2021年从零到大数据专家的学习指南(全面升级版)》的面试部分补充。 硬刚大数据系列文章链接: