第一题 A:门牌制作
#include <bits/stdc++.h>
using namespace std;
int main(){
int s = 0;
for(int i = 1; i <= 2020; i ++){
int j = i;
while(j){
if(j%10 == 2) s ++;
j /= 10;
}
}
cout << s << "\n";
return 0;
}
题目答案
624
第二题 B:即约分数
#include <bits/stdc++.h>
using namespace std;
int main(){
int s = 0;
for(int i = 1; i <= 2020; i ++){
for(int j = 1;j <= 2020; j ++){
int flag = 1;
for(int k = 2; k <= min(i, j); k ++){
if(i%k == 0 && j%k == 0){
flag = 0;
break;
}
}
if(flag) s ++;
}
}
cout << s << "\n";
return 0;
}
题目答案
2481215
第三题 C:蛇型填数
#include <bits/stdc++.h>
using namespace std;
int main(){
int s = 1, a = 4;
for(int i = 0; i < 19; i ++){
s += a;
a += 4;
}
cout << s << "\n";
return 0;
}
题目答案
761
第四题 D:跑步锻炼
#include<bits/stdc++.h>
using namespace std;
int run(int year){
return (year%400==0)||(year%4==0&&year%100!=0);
}
int main()
{
int monNum = 0,weekNum = 0,monWeek = 0,days = 0,ans = 0;
int monDay[13] = {0,31,30,31,30,31,30,31,31,30,31,30,31};
for(int i = 2000; i <= 2020; i++){
//闰年处理
if(run(i))
monDay[2] = 29;
else
monDay[2] = 28;
//计算总天数和月份
for(int j = 1; j <= 12; j++){
if(i==2020&&j==10) break;
monNum += 1;
days+=monDay[j];
if((days+1)%7==3){
monWeek++;
}
}
}
weekNum += days/7;
if(days%7>=3)
weekNum++;
//cout << days+1 << ends << weekNum <<ends << monNum+1 << ends << monWeek <<endl;
ans = days+1 + weekNum +monNum+1 - monWeek;
cout << ans <<endl;
return 0;
}
题目答案
8879
第五题 E:七段码
第六题 F:成绩统计
#include <bits/stdc++.h>
using namespace std;
int main(){
int a[15000];
double s1 = 0, s2 = 0, n;
cin >> n;
for(int i = 0 ; i < n; i ++){
cin >> a[i];
if(a[i] >= 60) s1 ++;
if(a[i] >= 85) s2 ++;
}
cout << (int)(100 * s1/n + 0.5) << "%\n" << (int)(100 * s2/n + 0.5) << "%\n";
return 0;
}
第七题 G:回文日期
- 不能枚举日期然后进行判断,这样需要写一个日历,太复杂。
我们只需枚举范围年份,然后将年份逆转过来补充成一个“八位日期”,然后判断得到的“八位日期”是不是一个正常的日期格式,然后判断是否符合题目要求。
第八题 H:即约分数