2012年蓝桥杯预赛题-高斯日记

来源:互联网 发布:linux scan 编辑:程序博客网 时间:2024/05/21 00:00

题目描述

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

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

从给的例子来看,高斯出生那天也算一天。所以写代码的时候要注意。

#include <stdio.h>int getDate(int n);int leapYear(int y);int main( void ){int const num = 8112;getDate(num);return 0;}int leapYear(int y ){if (( y % 4 == 0 && y %100 != 0) || y % 400 == 0 ){return 1;}else {return 0;}}int getDate( int n ){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 nextYear = 1778;int year , mouth , day;int afterAll = 31 + 30 + 31 + 31 + 30 + 31 + 30 + 31;if ( n <= afterAll ){year = 1777;mouth = 5;for ( ; mouth <= 12 && n> a[ 0 ][ mouth + 1 ]; mouth++ ){n -= a[ 0 ][ mouth ];}day = n;printf("%d-%d-%d\n", year , mouth , day );}else{n -= afterAll;for ( ; n >= (leapYear(nextYear) ? 366:365 ) ; nextYear++ ){n -= (leapYear(nextYear) ? 366:365 );}mouth = 1;for ( ; mouth <= 12 && n > a[ 0 ][ mouth + 1 ]; mouth++ ){n -= a[ 0 ][ mouth ];}year = nextYear;day = n;printf("%d-%d-%d\n", year , mouth , day );}}


0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 身份证和户口都掉了怎么办 毕业生户口迁回原籍没身份证怎么办 落户上海后怎么办医保卡 小车临时牌过期了怎么办 驾驶证地址错了一个字怎么办 驾驶证名下车辆有违章怎么办 a2如果扣12分怎么办 b2一次超速12分怎么办 b2本扣了12分怎么办 驾照扣了27分怎么办 大车一次扣12分怎么办 a2驾照扣10分怎么办 驾驶证强制降级没给驾驶证怎么办 6P升11.2卡了怎么办 b2驾照记满12分怎么办 c1驾驶证没分了怎么办 驾照扣了15分怎么办 驾驶证暂扣六个月后怎么办 醉驾交警不通知怎么办 参军后地方驾驶证年审怎么办 军人驾驶证到期身份证注销了怎么办 资格证脱审30天怎么办 驾驶证c证扣6分怎么办 驾照被扣了9分怎么办 驾驶证被扣了9分怎么办 a2驾驶本扣3分怎么办 c1e没过扣了满分怎么办 c1一下扣12分怎么办 换证体检过不了怎么办 唐山驾驶本到期换本怎么办 北京居住证变更地址了怎么办 眼睛弱视驾驶证换证不了怎么办? 驾照的分扣完了怎么办 驾照被扣了3分怎么办 交警扣了行驶证怎么办 报考驾照时手机号录错怎么办 摩托车被交警队拖走怎么办 汽车牌照被偷了怎么办 代理品牌个体工商营业证怎么办 2地交社保怎么办退休 驾驶证脱审3月怎么办