一,门牌制作
题目描述
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
小蓝要为一条街的住户制作门牌号。
这条街一共有 20202020 位住户,门牌号从 11 到 20202020 编号。
小蓝制作门牌的方法是先制作 00 到 99 这几个数字字符,最后根据需要将字符粘贴到门牌上,例如门牌 1017 需要依次粘贴字符 1、0、1、71、0、1、7,即需要 11 个字符 00,22 个字符 11,11 个字符 77。
请问要制作所有的 11 到 20202020 号门牌,总共需要多少个字符 22?
运行限制
最大运行时间:1s
最大运行内存: 128M
分析:python和c++都可以做,但是python非常快:
python解题:
sum=0
for a in range(1,2021):
str1=str(a)
for i in str1:
if(i=='2'):
sum=sum+1
print(sum)
答案:
624
二,既约分数
题目描述
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
如果一个分数的分子和分母的最大公约数是 11,这个分数称为既约分数。
例如, 都是既约分数。
请问,有多少个既约分数,分子和分母都是 11 到 20202020 之间的整数(包括 11 和 20202020)?
运行限制 最大运行时间:2s 最大运行内存: 128M
c++解法:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a,sum=0;
for(int i=1;i<=2020;i++)
{
for(int j=1;j<=2020;j++)
{
a=max(i,j);
int p;
for(p=2;p<a;p++)
{
if(i%p==0&&j%p==0)
break;
}
if(p>=a&&i!=j)
{
//cout<<i<<'/'<<j<<endl;
sum++;
}
}
}
cout<<sum+1;
}
答案:
2481215
总结:
最后加一是为了算上1
三,蛇形填数
题目描述
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
如下图所示,小明用从 11 开始的正整数“蛇形”填充无限大的矩阵。
1 2 6 7 15 ...
3 5 8 14 ...
4 9 13 ...
10 12 ...
11 ...
...
copy
容易看出矩阵第二行第二列中的数是 55。请你计算矩阵中第 2020 行第 2020 列的数是多少?
运行限制 最大运行时间:1s 最大运行内存: 128M
c++解法:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a=1,b=1;
for(int i=1;i<20;i++)
{
a+=b*4;
b++;
}
cout<<a;
}
心得:规律题
四,成绩统计
题目描述
小蓝给学生们组织了一场考试,卷面总分为 100 分,每个学生的得分都是一个 0 到 100 的整数。
如果得分至少是 60 分,则称为及格。如果得分至少为 85 分,则称为优秀。
请计算及格率和优秀率,用百分数表示,百分号前的部分四舍五入保留整 数。
输入描述
输入的第一行包含一个整数 n\ (1 \leq n \leq 10^4)n (1≤n≤10
4
),表示考试人数。
接下来 nn 行,每行包含一个 0 至 100 的整数,表示一个学生的得分。
输出描述
输出两行,每行一个百分数,分别表示及格率和优秀率。百分号前的部分 四舍五入保留整数。
输入输出样例
示例
输入
7
80
92
56
74
88
100
0
输出
71%
43%
运行限制 最大运行时间:1s 最大运行内存: 256M
c++代码
#include<bits/stdc++.h>
using namespace std;
int main()
{
int x,a,x1;
cin>>x;
int j=0,y=0;
x1=x;
while(x--)
{
cin>>a;
if(a>=60)
{
j++;
}
if(a>=85)
{
y++;
}
}
int j1,y1;
j1=((j/double(x1))*1000+5)/10;
y1=((y/double(x1))*1000+5)/10;
cout<<j1<<"%"<<endl<<y1<<"%";
}