2020年蜀山区青少年信息学竞赛小学组试题
1、平均年龄(age)
新学期开始了,学校要统计各班同学的年龄,小萱萱班上有若干名学生,现在给出每名学生的年龄(整数),要统计班上所有学生的平均年龄(四舍五入取整)。
输入描述
第一行有一个整数n(1<=n<=100),表示学生的人数。其后n行每行有1个整数,表示每个学生的年龄,取值为8到25。
输出描述
输出一行,该行包含一个整数,为要求的平均年龄(四舍五入取整)。
样例输入
2
8
10
样例输出
9
#include<iostream>
using namespace std;
int main(){
int n,a,sum=0;
cin>>n;
for(int i=0;i<n;i++){
cin>>a;
sum+=a;
}
cout<<sum/n;
return 0;
}
2、解密(passport)
萱萱最近在学习计算机密码学,密码学是一门古老而又年轻的学问,计算机科学的兴起给密码学注入了新的活力。在网络、通信技术高度发达的今天,计算机安全和保密问题显得越来越重要。萱萱在学习过程中遇到了这样一个任务:解密一份被加密过的文件。
经过研究,萱萱发现了加密文件有如下加密规律(括号中是一个“原文->密文”的例子)
(1)原文中所有的字符都在字母表中被循环左移了三个位置(dev->abz)
(2) 逆序存储(abcd->dcba)
(3) 字母大小写反转(abXY->ABxy)
输入描述
一个加密的字符串。(长度大于1且小于50且只包含大小写字母)
输出描述
输出加密后的字符串
样例输入
Helloworld
样例输出
GOURZROOHk
#include<iostream>
using namespace std;
int main(){
string s;
cin>>s;
char ch[51];
char r[51];
for(int i=0;i<s.length();i++){
ch[i]=s[s.length()-i-1];
if(ch[i]>='a'&&ch[i]<='z'){
r[i]=(char)(ch[i]-32);
}
if(ch[i]>='A'&&ch[i]<='Z'){
r[i]=(char)(ch[i]+32);
}
}
for(int i=0;i<s.length();i++){
cout<<(char)(r[i]+3);
}
return 0;
}
3、数字游戏
小萱萱刚学习完约数的知识,一个数的约数指能整除这个数的正整数。周末,小萱萱和几个朋友一起玩耍,刚学习完约数知识的小萱萱迫不及待的想给小朋友们展示一下她的本领,她和几个朋友一起玩起了这样一个游戏;给你一个整数N,需要算出这个数所有的约数的和。例如15的数有1,3,5,15。所以15的约数和为1+3+5+15=24。
输入描述
本题有多组数据,第一行一个T,表示有T组数据;下面T行,每行一个正整数N,表示要处理的数。
输出描述
T行,每行一个正整数,表示输入中对应的数的约数的和。
样例输入
1
15
样例输出
24
数据范围及提示
对于20%的数据,T=1;
对于50%的数据,T<=5000;
对于80%的数据,T<=50000;
对于100%的数据,T<=50000;N<=5000000。
#include<iostream>
using namespace std;
int main(){
int n;
cin>>n;
int a[n];
for(int i=0;i<n;i++){
cin>>a[i];
}
for(int i=0;i<n;i++){
int sum=0;
for(int j=1;j<=a[i];j++){
if(a[i]%j==0){
sum+=j;
}
}
cout<<sum<<endl;
}
return 0;
}
4、寻宝(find)
小萱萱参加了一个“寻宝”游戏;在一排均匀排列的树上,被随机放置了一个“宝贝”,看谁能以最少的时间找到这个“宝贝”。每一个寻宝的人开始会站在第N(0<=N<=100000)课树边,假设树有100000棵,“宝贝”被放在第(0<=K<=100000)棵树上,寻宝人有两种移动办法:步行和跳跃。假如寻宝人现在在第X棵树边,步行每秒可以从第X棵树向第X-1棵和第X+1棵树走去,跳跃可以让她在1秒内从第X棵树直接跳到第2*X棵树边(假如他有超能力完成跳跃,跳跃过程中不能超过树的边界)。现在要求找到“宝贝”需要的最短时间。
输入描述
仅有两个整数N和K
输出描述
最短时间
样例输入
5 17
样例输出
4
#include<iostream>
using namespace std;
int main(){
int n,k;
cin>>n>>k;
int m=(k-n)/n,a=(k-n)%n,b=n-a;
int ans=m+min(a,b);
cout<<ans;
return 0;
}