大数学家高斯有个好习惯:无论如何都要记日记。他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:4210。后来人们知道,那个整数就是日期,它表示那一天是高斯出生后的第几天。这或许也是个好习惯,它时时刻刻提醒着主人:日子又过去一天,还有多少时光可以用于浪费呢?
高斯出生于:1777年4月30日。在高斯发现的一个重要定理的日记上标注着:5343,因此可算出那天是:1791年12月15日。
高斯获得博士学位的那天日记上标着:8113。请你算出高斯获得博士学位的年月日。
提交答案的格式是:yyyy-mm-dd, 例如:1980-03-21
#include<bits/stdc++.h>
using namespace std;
int year(int n)
{
if (n%4==0 && n%100!=0 || n%400==0)
return 1;
return 0;
}
int a[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 main()
{
int y = 1777;
int n,m = 0,d = 0;
scanf("%d",&n);
n += 31 + 28 + 31 + 30;
int e = 365;
while (n-e>=0)
{
n -= e;
y++;
if (year(y))
e = 366;
else
e = 365;
}
int f = year(y);
while (n-a[f][m]>=0)
{
n -= a[f][m];
m++;
}
m++;
n--;
printf("%d-%02d-%02d\n",y,m,n);
return 0;
}