题面
高斯出生于1777年4月30日
他习惯用出生至今多少天记录事件。
如高斯记录自己某次事件的日期为5343,实际为1791年12月15日
现在已知高斯获得博士学位时数字为8113,请问实际日期时多少?
格式写为xxxx-0x-0x
AC代码
#include <bits/stdc++.h>
using namespace std;
int tim[2][13]={{0,31,28,31,30,31,30,31,31,30,31,30,31},{0,31,29,31,30,31,30,31,31,30,31,30,31}};
bool is(int x){
if(x%100 == 0){
return !(x%400);
}else{
return !(x%4);
}
}
int main(){
int y=1777,m=4,d=30;
int n = 8112;
while(n--){
d++;
bool fg = is(y);//判断当年是不是闰年
if(d>tim[fg][m]){
d%=tim[fg][m];
m++;
}
if(m>12){
m%=12;
y++;
}
}
printf("%d-%02d-%02d",y,m,d);
return 0;
}
注
- 出生那一天算不算第一天?——用给出的案例5343验证代码
- 输出格式的控制不要忘了
- 答案1799-07-16