2013 高斯日记

来源:互联网 发布:吸烟罚款 知乎 编辑:程序博客网 时间:2024/06/03 21:30

高斯日记 

大数学家高斯有个好习惯:无论如何都要记日记。
他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:4210
后来人们知道,那个整数就是日期,它表示那一天是高斯出生后的第几天。这或许也是个好习惯,它时时刻刻提醒着主人:日子又过去一天,还有多少时光可以用于浪费呢?
高斯出生于:1777年4月30日。
在高斯发现的一个重要定理的日记上标注着:5343,因此可算出那天是:1791年12月15日。
高斯获得博士学位的那天日记上标着:8113
请你算出高斯获得博士学位的年月日。

提交答案的格式是:yyyy-mm-dd, 例如:1980-03-21
请严格按照格式,通过浏览器提交答案。
注意:只提交这个日期,不要写其它附加内容,比如:说明性的文字。


答案:

1799-7-16 


题解:

 判断闰年。。。。写代码????手算????拉excel???用用VB秒掉。。。!!!

用代码解决:

#include<stdio.h>#include<string.h>#include<algorithm>#include<math.h>#define INF 0x3f3f3f3f#define ll long long#define N 10010#define M 1000000007using namespace std;int a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};int b[13]={0,31,29,31,30,31,30,31,31,30,31,30,31};int main(){int n;int dd=246;int i;while(scanf("%d",&n)!=EOF) //输入8113                            //输出:1799-7-16 {int y=1777;if(n<=245){int k=5;while(n>=30){n-=a[k];k++;}printf("%d-%d-%d\n",y,k,n);}else{n-=246;y++;while(n>=365){if(y%4==0&&y%100!=0||y%400==0)n-=366;elsen-=365;y++;}if(n>0){for(i=1;i<13;i++){if(y%4==0&&y%100!=0||y%400==0){if(n>=29)n-=b[i];elsebreak;}else{if(n>=28)n-=a[i];elsebreak;}if(n==0)n++;}printf("%d-%d-%d\n",y,i,n);}elseprintf("%d-12-31\n",y);}}return 0;}

用VB解决:

在txt中写入: msgbox dateadd("d",8112,"1777-4-30")

然后后缀名改为vbs.

点击打开。

答案自动出来。。。。




1 0
原创粉丝点击