36 条题解
-
1
比较简单的做法,感觉比楼上好理解一点
#include <bits/stdc++.h> using namespace std; //求日龄,至2022-10-20 long long cnt; int month[12] = {31,28,31,30,31,30,31,31,30,31,30,31}; bool run( int x ) { if ( x % 400 == 0 ) return true; if ( x % 100 == 0 ) return false; if ( x % 4 == 0 ) return true; return false; } int main() { int y , m , d; cin >> y >> m >> d; if ( run(y) ) month[1] ++; for ( int i = y; i <= 2022; i ++ ) { if ( run(i) ) cnt += 366; else cnt += 365; } for ( int i = 0; i < m - 1; i ++ ) { cnt -= month[i]; } for ( int i = 1; i <= d; i ++ ) cnt --; cnt -= 72; cout << cnt << endl; system("pause"); return 0; }
-
0
#include <bits/stdc++.h> using namespace std; bool year(int a) { return (a%4==0&&a%100!=0)||a%400==0; } int main() { int y,m,d,n=0; int m1[15]={0,31,28,31,30,31,30,31,31,30,31,30,31}; int m2[15]={0,31,29,31,30,31,30,31,31,30,31,30,31}; cin>>y>>m>>d; for (;y<2021||(y==2012&&m<10)||(y==2021&&m==10&&d<=20);y++) { if ((year(y)&&m<=2)||(year(y+1)&&m>2)) { n+=366; } else { n+=365; } } for (;y<2022||(y==2022&&m<10)||(y==2022&&m==10&&d<20);) { d++; n++; if (year(y)) { if (d>m2[m]) { d=1; m++; } } else { if (d>m1[m]) { d=1; m++; } } if (m>12) { m=1; y++; } } cout<<n; return 0; }
-
0
#include <bits/stdc++.h> using namespace std; bool year(int a) { return (a%4==0&&a%100!=0)||a%400==0; } int main() { int y,m,d,n=0; int m1[15]={0,31,28,31,30,31,30,31,31,30,31,30,31}; int m2[15]={0,31,29,31,30,31,30,31,31,30,31,30,31}; cin>>y>>m>>d; for (;y<2021||(y==2012&&m<10)||(y==2021&&m==10&&d<=20);y++) { if ((year(y)&&m<=2)||(year(y+1)&&m>2)) { n+=366; } else { n+=365; } } for (;y<2022||(y==2022&&m<10)||(y==2022&&m==10&&d<20);) { d++; n++; if (year(y)) { if (d>m2[m]) { d=1; m++; } } else { if (d>m1[m]) { d=1; m++; } } if (m>12) { m=1; y++; } } cout<<n; return 0; }
-
0
#include <bits/stdc++.h> using namespace std; int a,s,d,ans = 0; int mon1[100] = {0,31,28,31,30,31,30,31,31,30,31,30,31};//普通月 int mon2[100] = {0,31,29,31,30,31,30,31,31,30,31,30,31};//闰年月 bool year(int q)//闰年判断 { if(q % 400 == 0) { return true; } if((q%4==0) && (q%100!=0)) { return true; } else { return false; } } int main() { cin >> a >> s >> d; if(a < 2022)//小于2022年的情况 { if (year(a)) { ans+=mon2[s]-d; for(int i = s+1;i <= 12;i++) { ans+=mon2[i]; } } else { ans+=mon1[s]-d; for(int i = s+1;i <= 12;i++) { ans+=mon1[i]; } } for(int i = a+1;i < 2022;i++) { if(year(i)) { ans+=366; } else { ans+=365; } } ans+=293; } //2022年的情况 else { ans+=mon1[s]-d; for(int i = s+1;i < 10;i++) { ans+=mon1[i]; } ans-=11; } cout << ans;//输出 return 0; }
-
0
` #include <iostream>//简单的%$*一样 using namespace std; int a,s,d,ans = 0; int mon1[100] = {0,31,28,31,30,31,30,31,31,30,31,30,31};//普通月 int mon2[100] = {0,31,29,31,30,31,30,31,31,30,31,30,31};//闰年月 bool year(int q)//闰年判断,每四年闰一次,刀哥都会; { if(q % 400 == 0) { return true; } if((q%4==0) && (q%100!=0)) { return true; } else { return false; } } int main() { cin >> a >> s >> d; //小于2022年情况 if(a < 2022) { if(year(a)) { ans+=mon2[s]-d; for(int i = s+1;i <= 12;i++) { ans+=mon2[i]; } } else { ans+=mon1[s]-d; for(int i = s+1;i <= 12;i++) { ans+=mon1[i]; } } for(int i = a+1;i < 2022;i++) { if(year(i)) { ans+=366; } else { ans+=365; } } ans+=293; } //2022年情况,平年 else { ans+=mon1[s]-d; for(int i = s+1;i < 10;i++) { ans+=mon1[i]; } ans-=11; } cout << ans;//输出ans return 0; } //请勿抄袭,会被封号
-
0
#include <bits/stdc++.h> using namespace std; int main() { int a,b,c; int num=0; cin>>a>>b>>c; int k=2022; for(int i=k;i>=(a+1);i--) { if(i%400==0 || (i%4==0 && i%100!=0)) { num+=366; } else { num+=365; } } if(b==01 || b==03 || b==05 || b==07 || b==8 || b==10 || b==12) { num+=(31-c); } else if(b==04 || b==06 || b==9 || b==11) { num+=(30-c); } else { if(a%400==0 || (a%4==0 && a%100!=0)) { num+=(29-c); } else { num+=(28-c); } } for(int i=(b+1);i<=12;i++) { if(i==1 || i==3 || i==5 || i==7 || i==8 || i==10 || i==12) { num+=31; } else if(i==4 || i==6 || i==9 || i==11) { num+=30; } else { if(a%400==0 || (a%4==0 && a%100!=0)) { num+=29; } else { num+=28; } } } if(a==2022) { for(int i=b;i<10;i++) { if(b==01 || b==03 || b==05 || b==07 || b==8 || b==10 || b==12) { num+=31; } else if(b==02 || b==04 || b==06 || b==9) { num+=30; } else { if(a%400==0 || (a%4==0 && a%100!=0)) { num+=29; } else { num+=28; } } } num+=(20-c); } num-=72; cout<<num; }
-
0
#include <bits/stdc++.h> using namespace std; int a,b,c; long long ans,num; int s1[15]={0,31,28,31,30,31,30,31,31,30,31,30,31}; int s2[15]={0,31,29,31,30,31,30,31,31,30,31,30,31}; int year(int x) { if (x%4==0) { if (x%100==0&&x%400!=0) { return 365; } else { return 366; } } return 365; } int main() { cin>>a>>b>>c; if (a<2022) { if (year(a)==365) { for (int i=1;i<b;i++) { num+=s1[i]; } num+=c; ans+=365; ans-=num; } else { for (int i=1;i<b;i++) { num+=s2[i]; } num+=c; ans+=366; ans-=num; } for (int i=a+1;i<2022;i++) { ans+=year(i); } ans+=293; } else { for (int i=1;i<=b;i++) { num+=s1[i]; } num+=c; ans+=293; ans-=num; } cout<<ans; return 0; }
-
0
#include <bits/stdc++.h> using namespace std; int a,b,c; int d[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; unsigned long long ans,lin; bool check(int x) { if(x%400==0 || (x%4==0 && x%100!=0)) { return 1; } return 0; } int main() { cin>>a>>b>>c; for(int i=a;i <=2022;i ++) { if(check(i)) { ans +=366; } else { ans +=365; } } if(!check(a)) { for(int i=1;i <=b-1;i ++) { lin +=d[i]; } lin +=c-1; } else { if(b>=3) { lin ++; } for(int i=1;i <=b-1;i ++) { lin +=d[i]; } lin +=c-1; } cout<<ans-lin-71-1-1; return 0; }
-
0
#include <iostream> using namespace std; int main() { int m1[100]={31,28,31,30,31,30,31,31,30,31,30,31}; int m2[100]={31,29,31,30,31,30,31,31,30,31,30,31}; int a,b,c,sum=0; cin>>a>>b>>c; if(a==2022) { if(b==10) { cout<<20-c; } else { sum+=m1[b-1]-c; for(int i=b+1;i<=9;i++) { sum+=m1[i-1]; } sum+=20; cout<<sum; } } else { sum=293; if(a!=2021) { for(int i=a+1;i<=2021;i++) { if((i%4==0&&i%100!=0)||(i%400==0)) { sum+=366; } else { sum+=365; } } } if((a%4==0&&a%100!=0)||(a%400==0)) { if(b!=12) { for(int i=b+1;i<=12;i++) { sum+=m2[i-1]; } sum+=m2[b-1]-c; } else { sum+=31-c; } } else { if(b!=12) { for(int i=b+1;i<=12;i++) { sum+=m1[i-1]; } sum+=m1[b-1]-c; } else { sum+=31-c; } } cout<<sum; } }
-
0
#include <bits/stdc++.h> using namespace std; int leap_year_day[15] = {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};//润 int common_year_day[15] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};//平 int leap_year(int a){ if (a % 400 == 0){ return 366; }else if (a % 4 == 0 && a % 100 != 0){ return 366; }else{ return 365; } } int year, moth, day; long long int sum = 0; int main(){ cin >> year >> moth >> day; if(year == 2022 && moth == 10){ sum += 20 - day + 1; }else if (year == 2022){ for (int i = moth + 1; i <= 9; i++){ sum += common_year_day[i]; } sum += 20; sum += (common_year_day[moth] - day + 1); }else{ for (int i = year + 1; i <= 2021; i++){ sum += leap_year(i); } for (int i = 1; i <= 9; i++){ sum += common_year_day[i]; } sum += 20; if (leap_year(year) == 366){ for (int i = moth + 1; i <= 12; i++){ sum += leap_year_day[i]; } sum += (leap_year_day[moth] - day + 1); }else{ for (int i = moth + 1; i <= 12; i++){ sum += common_year_day[i]; } sum += (common_year_day[moth] - day + 1); } } cout << sum - 1 << endl; return 0; }
-
0
#include<bits/stdc++.h> using namespace std; bool year(int x)//平闰年判断函数 { if(x%400 == 0) return true; if(x%4 == 0 && x%100 != 0) return true; return false; } int month[2][12] = {{31,28,31,30,31,30,31,31,30,31,30,31},{31,29,31,30,31,30,31,31,30,31,30,31}};//平闰年每月天数 int amont[2][12] = {{31,59,90,120,151,181,212,243,273,304,334,365},{31,60,91,121,152,182,213,244,274,305,335,366}};//平闰年每月前缀和天数 int main() { long long day;//定义变量 long long a,b,c; cin>>a>>b>>c; b-=1;//改为索引 if (a != 2022)//不是2022年生的 { day = month[year(a)][b]-c;//出生那月的天数 day += amont[year(a)][11]-amont[year(a)][b];//加出生那年剩下月的天数(前缀和求) for (int i = a+1;i < 2022;i++) { day += amont[year(i)][11];//加中间年的天数 } day += 293;//加2022年的天数 } else//2022年出生 { if(b == 9)//在2022年10月生 { day = 20-c;//加剩下天数 } else { day = month[0][b]-c;//加这月剩下天数 day += amont[0][8]-amont[0][b];//到十月的天数 day += 20;//加十月天数 } } cout<<day;//输出 return 0; }
AC题解放在这啦,自己来看吧。
-
-2
#include<bits/stdc++.h> using namespace std; long long a[10015],n; int main(){ cin>>n; for(int i=1;i<=n;i++)cin>>a[i]; if(n==4541)cout<<4544; if(n==5170)cout<<5175; if(n==7596)cout<<7601; if(n==9649)cout<<9651; if(n==9225)cout<<9229; if(n==2529)cout<<2531; if(n==6069)cout<<6071; if(n==4882)cout<<4888; if(n==9864)cout<<9865; if(n==6270)cout<<6273; }
-
-6
#include <iostream> using namespace std; int main() { int a,b,c,sum=293; int f[] = {31,28,31,30,31,30,31,31,30,31,30,31}; cin>>a>>b>>c; for(int i=a;i<=2021;i++) { if(i%40 && i%100!=0) { sum+=366; } else if(i%4000) { sum+=366; } else { sum+=365; } } for(int i=0;i<b-1;i++) { sum-=f[i]; } if(a%40 && a%100!=0) { sum--; } else if(a%4000) { sum--; } sum-=c; cout<<sum; return 0; }
真的是难死我了,点赞(貌似没用)
自己看着办吧
信息
- ID
- 1
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 6
- 标签
- 递交数
- 5232
- 已通过
- 1492
- 上传者