小菜请大家帮忙解释一下"高斯日记"
大数学家高斯有个好习惯:无论如何都要记日记。他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:4210
后来人们知道,那个整数就是日期,它表示那一天是高斯出生后的第几天。
这或许也是个好习惯,它时时刻刻提醒着主人:日子又过去一天,
还有多少时光可以用于浪费呢? 高斯出生于:1777年4月30日。
在高斯发现的一个重要定理的日记上标注着:5343,
因此可算出那天是:1791年12月15日。
高斯在某一天日记上标着:8113
请你算出这一天的年月日。
代码如下:
#include<stdio.h>
int runnian(int y)
{
if(((y % 4 == 0) && (y % 100 != 0)) || (y % 400 == 0))
return 1;
else
return 0;
}
void main()
{
int year = 1791, month = 12, day = 15, t = 0, i, n;
int y = year;
int m = month;
int d = day;
int arr[] = {31,28,31,30,31,30,31,31,30,31,30,31};
n = 8113 - 5343 == 2770;
for(i = 11;t <= 2770;i++)//t为什么从11 开始?
{
if(i >= 12)
{
i = 0;
y++;
}
if(runnian(y))
arr[1] = 29;
else
arr[1] = 28;
day = 2770 - t;
t = t + arr[i];
m = i + 1;//这三句也不是很懂
}
printf("y=%d,m=%d,d=%d",y,m,d+1);
}