2020年第11届蓝桥杯省赛第二期C++(更新中)

试题A:门牌制作
题目
【问题描述】小蓝要为一条街的住户制作门牌号。这条街一共有2020位住户,门牌号从1到2020编号。小蓝制作门牌的方法是先制作0到9这几个数字字符,最后根据需要将字符粘贴到门牌上,例如门牌1017需要依次粘贴字符1、0、1、7,即需要1个字符0,2个字符1,1个字符7。请问要制作所有的1到2020号门牌,总共需要多少个字符2?

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

题解
答案:624

#include<iostream>
#include<math.h>
#include<algorithm>
using namespace std;
int h(int x){
	int s=0;
	while(x>0){
		if(x%10==2)
		s++;
		x/=10;
	}
	return s;
}
int main(){
	
int m,n,i,j,k=0;
cin>>m;
for(i=1;i<=m;i++){	
	if(h(i))
	k=k+h(i);
 	
	}
	cout<<k;
	}
	```
	
  

#include
#include<math.h>
#include
using namespace std;
int main(){
int m,n,i,j,k=0;
cin>>m;
for(i=1;i<=m;i++){
int x=i;
while(x>0){
if(x%10==2)
k++;
x/=10;
}
}
cout<<k;
}

试题B:既约分数
题目
【问题描述】如果一个分数的分子和分母的最大公约数是1,这个分数称为既约分数。例如,3/4,5/2,1/8,7/1都是既约分数。请问,有多少个既约分数,分子和分母都是1到2020之间的整数(包括1和2020)?
【答案提交】这是一道结果填空题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

题解
答案:2481215

#include
#include<math.h>
#include
using namespace std;
int main(){
int i,j,s=0;
for(i=1;i<=2020;i++){
for(j=1;j<=2020;j++){
if(__gcd(i,j)==1)
s++;
}
}
cout<<s;
}

试题C:蛇形填数
题目
【问题描述】
如下图所示,小明用从1开始的正整数“蛇形”填充无限大的矩阵。容易看出矩阵第二行第二列中的数是5。请你计算矩阵中第20行第20列的数是多少?

1 2 6 7 15 :::
3 5 8 14 :::
4 9 13 :::
10 12 :::
11 :::
:::

等差数列:an+1=(2n+2)*n+1;
代入n=19,即an=20时即为结果
试题D:跑步锻炼
题目
【问题描述】小蓝每天都锻炼身体。正常情况下,小蓝每天跑1千米。如果某天是周一或者月初(1日),为了激励自己,小蓝要跑2千米。如果同时是周一或月初,小蓝也是跑2千米。小蓝跑步已经坚持了很长时间,从2000年1月1日周六(含)到2020年10月1日周四(含)。请问这段时间小蓝总共跑步多少千米?
【答案提交】这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

题解
答案:8879

#include<iostream>
#include<math.h>
#include<algorithm>
using namespace std;
int h(int y){
	if((y%100!=0&&y%4==0)||y%400==0)
	return 1;
	else return 0;
}
int main(){
	int a[15]={0,31,28,31,30,31,30,31,31,30,31,30,31};
	int n,m,d,t=5,s=0,y;
	for(y=2000;y<=2020;y++){
		for(m=1;m<=12;m++){
			for(d=1;d<=a[m]+(m==2?h(y):0);d++){
				t=t%7+1;
		//	cout<<t<<" ";
				if(d==1||t==1)
				s=s+2;
				else s++;
				if(y==2020&&m==10&&d==1)
				cout<<s;
			}
}
}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

加油吧!~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值