高斯日记问题

高斯日记问题

ID:38530876

大小:126.60 KB

页数:10页

时间:2019-06-14

高斯日记问题_第1页
高斯日记问题_第2页
高斯日记问题_第3页
高斯日记问题_第4页
高斯日记问题_第5页
资源描述:

《高斯日记问题》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、算法的研究、设计与实现----------------高斯日记问题的求解一、引言最初算法这个术语是对一种人类思维方式的定义,即从具体的操作规范入手,通过操作过程的构造与实施来解决给定问题的思维方法。这表明,算法既可以用来描述人解决给定问题的操作过程,也可以用来描述计算机解决给定问题的操作过程,后者正是我们编写程序的基础,是计算科学意义下的算法。二、目的1. 巩固和加深学生对算法分析课程基本知识的理解和掌握;2. 培养利用算法知识解决实际问题的能力;3. 掌握利用程序设计语言进行算法程序的开发、调试、测试的能力;4. 掌握书写算法设计说明文档的能力;5. 提高综合运用算法、程序设计语言的

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

3、开始看到题目,我认真想了想,题目分析如下:1778不是闰年,所以8113-365=7748,1779也不是闰年,所以再减365得7383,1780是闰年,所以减去366得7017,又1781,1782,1783,肯定都不是所以连减3个365得5922,然后又是闰年,-366,再-365-365-365-366-365-365-365-366-365-365......-365-366-365-365-365到1799得 78,即这一天是1799年4月30日之后的78天,5月31天,-31,6月30天,-30,剩17天,此时即加上两个月,为1799年6月30日,然后往后数17天,即为17

4、99年7月16日。  注意这里,6月30日,往后数17天得到的是7月16日,所以说他是从6月30日开始数起的,高斯出生的那天过去了,也算是一天。整理变成代码,发现只需要解决三个问题,应该基本上就可以了,第一个问题是闰年的判断,第二个问题是各月份的天数,最后一个问题也是最关键的问题就是如何计算天数从而得到最后的答案,所以我打算用三个函数来解决。2框图main()Afterxdays()Daysofmonth()Leapyear()3、流程图开始输入x1→ii

5、month+1→month1→dayi+1→i输出year,month,day结束4、伪代码#definetrue1#definefalse0intleapyear(intyear)//闰年的判断{if(year%400==0

6、

7、year%4==0&&year%100!=0)return(true);elsereturn(false);}这是判断闰年的函数的代码,我们很容易知道闰年的条件是能被4整除,但不能被100整除的年份是闰年,或者能被400整除的年份也是闰年,知道了这些条件,使用if语句就能简单的把这个函数写出来了。intdaysofmonth(intyear,intmonth,

8、intday)//各月份的天数{inta[4]={28,29,30,31};switch(month){case1:case3:case5:case7:case8:case10:case12:return(a[3]);case4:case6:case9:case11:return(a[2]);case2:return(leapyear(year)?a[1]:a[0]);default:return-1;}}这是说明各月份天数的函数,本来想直接用一个二维数组来表示,但觉得那样有点乱,就采用switch语句,虽然占的篇幅大了点,但比较清晰明了。voidafterxdays(intyear,

9、intmonth,intday,intx)//计算经过X天后的日期{inti;for(i=1;i

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。