2022.04.03蓝桥杯第十一届 4.跑步锻炼(日期)

  • 【问题描述】
    小蓝每天都锻炼身体。
    正常情况下,小蓝每天跑 1 千米。如果某天是周一或者月初(1 日),为了激励自己,小蓝要跑 2 千米。如果同时是周一或月初,小蓝也是跑 2 千米。
    小蓝跑步已经坚持了很长时间,从 2000 年 1 月 1 日周六(含)到 2020 年10 月 1 日周四(含)。请问这段时间小蓝总共跑步多少千米?

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

  • 注意开始和结束时间,别忘了!!

#include<bits/stdc++.h>

using namespace std;
#define js ios::sync_with_stdio(false);cin.tie(0);cout.tie(0) 
int a[21][13][32];
int day[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int read(){
	int ans=0,flag=1;
	char ch;ch=getchar();
	while((ch<'0'||ch>'9')&&ch!='-') ch=getchar();
	if(ch=='-') flag=-1,ch=getchar();
	while(ch>='0'&&ch<='9') ans=(ans<<3)+(ans<<1)+ch^48,ch=getchar();
	return ans*flag;
}
bool isyear(int x){
	int y=2000+x;
	if((y%4==0&&y%100!=0)||y%400==0) return true;
	else return false;
}
int main(){
	js;
	int cnt=6;//注意开始是周六 
	int ans=0;
	for(int y=0;y<=20;++y){
		if(isyear(y)) day[2]=29;
		else day[2]=28;
		for(int m=1;m<=12;++m){
			for(int d=1;d<=day[m];++d){
				if(y==20&&m==10&&d==2) {//记得结束 
				//在这里就要结束了 用break不行 只能退出一个循环 要直接return  
					cout<<ans<<endl;
					return 0;
				}
				if(cnt==8) cnt=1;
				a[y][m][d]=cnt++;
				if(d==1||a[y][m][d]==1) ans+=2;//两者某一种为真或两者都为真就是2 
				else ans+=1;
			}
		}
	}
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值