0
已解决
李瑞曦
高级天翼
高级天翼
70分
我的代码:
#include <iostream>
#include <cmath>
using namespace std;
int a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31},i,cnt;
int ss(int y){
if(y%400==0||y%4==0&&y%100!=0)
return true;
return false;
}
int main(){
int y,m,d;
cin>>y>>m>>d;
d+=1;
while(!(y==1900&&m==1&&d==1)){
d--;
i++;
if(i!=7){
//cout<<i;
cnt++;
}
if(i==8){
i=1;
}
if(d==0){
if(ss(y)==false){
a[2]=28;
}
else{
a[2]=29;
}
d=a[m];
m--;
if(m==0){
m=12;
y--;
}
}
}
cout<<cnt<<endl;
return 0;
}
李瑞曦在2021-06-09 21:02:27追加了内容
@潘孝宇 是这样吗?0分儿啊
麻烦你再帮我看一下,谢谢
#include <iostream>
#include <cmath>
using namespace std;
int m[13]={0,31,28,31,30,31,30,31,31,30,31,30,31},cnt;
int ss(int y){
if(y%400==0||y%4==0&&y%100!=0)
return true;
return false;
}
int main(){
int y,m,d=0,x,z=0;
cin>>x>>y>>z;
for(int i=1900;i<=x-1;i++){
if(ss(i)==true){
m[2]=29;
}
for(int j=1;j<=y-1;j++){
d+=m[j];
}
}
d+=z;
cout<<d-d/7<<endl;
return 0;
}
0
已采纳
潘孝宇
初级光能
初级光能
我的想法是:先看每年的天数,再看每月的天数,最后看日数。
先开个数组:
int month[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
存放每个月天数
接下来枚举年份:
for(i:1900~x-1){
if(是闰年)day+=366;
else day+=365;
}
day用来存储一共经过的天数。
之所以枚举到x-1是因为x那年并没有过完整。
然后判断x当年是否为闰年,如果是,month[2]就要变为29.
再下来从1到y-1(不枚举到y,因为y月还没有过完整),每次day+=month[月份]
最后day加上z,就是过了的天数。
最终的答案是
day-day/7
望采纳
0