高斯笔记

来源:互联网 发布:英属哥伦比亚大学知乎 编辑:程序博客网 时间:2024/06/10 03:19

题目标题: 高斯日记
大数学家高斯有个好习惯:无论如何都要记日记。
他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:4210
后来人们知道,那个整数就是日期,它表示那一天是高斯出生后的第几天。这或许也是个好习惯,它时时刻刻提醒着主人:日子又过去一天,还有多少时光可以用于浪费呢?
高斯出生于:1777年4月30日。
在高斯发现的一个重要定理的日记上标注着:5343,因此可算出那天是:1791年12月15日。
高斯获得博士学位的那天日记上标着:8113
请你算出高斯获得博士学位的年月日。
提交答案的格式是:yyyy-mm-dd, 例如:1980-03-21
这里又是一道求日期的题目,第三届中也出现了同样的题目,星系炸弹。
这种题型有几种解法:

①用Excel的表格求解(以星系炸弹为例)

这里写图片描述
缺点:只能算1900年后的日期。

②用 vb Script的时间函数求解

教程如下:(以星系炸弹为例)
1, 新建一个文本文档。
2,然后改名为test.vbs,生成vbs文件。
3,输入内容msgbox dateadd(“d”,1000,”2014-11-9”)
‘vb中注释是单引号…msgbox意思是MessageBox 就是弹出对话框
‘vb中不需要分号结尾, 函数调用 直接可以用 [func 参数]
4,保存,然后双击运行。得到如下效果。
这里写图片描述
同样的在这个题目可以输入
msgbox dateadd(“d”,8112,”1777-4-30”)
注意,题目中说的是第几天,所以间隔是8113-1=8112。
步骤图示如下:(以高斯笔记为例)
1,新建文档,并输入内容。
这里写图片描述
2,生成vbs文件。
这里写图片描述
3,运行。
这里写图片描述

③按题目本身的意思,用C语言求解

/*这个题又是一道计算年月日的题目;注意点:闰年是366天(被4整除不被100整除,或者被400整除)1777.4.30  第一天 间隔5342 1791.12.155343天  +16->1792.1.0间隔:(2770=8113-5343)-16=2754天 所求日期 */#include<stdio.h> int main()  {      int year=1792,t,s=2754,i;      int month,day;      int mon[12]={31,28,31,30,31,30,31,31,30,31,30,31};      while(1){      if(s>t){           if((year%4==0&&year%100!=0)||year%400==0)          {          t=366;          }          else{              t=365;          }          year++;          s-=t;      }      else  break;    //跳出循环.得年份。       }      for(i=0;i<12;i++){          if(s>mon[i]){              s=s-mon[i];          }                  else{              month=i+1;              break;  //循环得月份         }      }      day=s;          //剩余即天数     printf("%d %d %d\n",year,month,day);      return 0;  } 

综上所述:遇到题目,可以灵活求解。前两种方法就可以提高解题速度,节省时间。

0 0
原创粉丝点击