第四题
2020第四题:跑步锻炼
题目描述
小蓝每天都锻炼身体。正常情况下,小蓝每天跑1千米。如果某天是周一或者月初(1日),为了激励自己,小蓝要跑2千米。如果同时是周一或月初,小蓝也是跑2千米。小蓝跑步已经坚持了很长时间,从2000年1月1日周六(含)到2020年10月1日周四(含)。请问这段时间小蓝总共跑步多少千米?
#include<iostream>
#include<bits/stdc++.h>
using namespace std;
int run[2][13]={
{0,31,29,31,30,31,30,31,31,30,31,30,31},{0,31,28,31,30,31,30,31,31,30,31,30,31}};
//run[0]表示闰年每个月的天数,run[1]表示非闰年的天数
int main()
{
int y1,m1,d1;//初始日期
y1=2000,m1=1,d1=1;
int tmp=0;
int week_num=6;//表示当前你是周几
int sum=0;//小蓝最终跑步的公里
while(!(y1==2020&&m1==10&&d1==1)){
if(week_num==1||d1==1) sum=sum+2;//非正常+2
else sum=sum+1;//正常情况,包含当天
tmp++;
//天数+1
d1++;
week_num++;
if(week_num==8) week_num=1;//如果星期八,变成星期一
//判断天数是否合法
int f=(y1%4==0&&y1%100!=0)||(y1%400==0)?0:1;
if(d1>run[f][m1]){d1=1;m1++;}
//判断月份是否合法
if(m1==13){m1=1;y1++;}
}
cout<<tmp+1<<endl;//最后一一天没算上,所以加一
cout<<week_num<<endl;
sum=sum+2;//最后一天是月初所以要加2
cout<<"小蓝一共跑了"<<sum<<"km"<<endl;
return 0;
}
答案8879
2019第四题:数的分解(10分)
题目描述
把 2019分解成 3个各不相同的正整数之和,并且要求每个正整数都不包
含数字2和4,一共有多少种不同的分解方法?
注意交换 3个整数的顺序被视为同一种方法,例如 1000+1001+18和
1001+1000+18被视为同一种。
#include<iostream>
using namespace std;
int i,j,z;
bool is(int x){
int tmp=0;
while(x){
t