Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
AC2080,半小时写代码,半个小时调试AC过程 1:区分平年和闰年 int IsLeapYear(int year) { return (year%400==0 ||(year%4==0 && year%100!=0 )) ? 1:0; } 2:要注意边界条件,输入1天,就表示过去了1的时间,那么就应该是2000年1月2日 如果总天数减去多年的天数和多月的天数后,剩下的就是当月过了的时间,所以最后还要加1,因为天数是从1开始计算的,而不是向maya calendar那一道题那样,从0开始计算 3:尽量地把日期时间年份,映射和封闭到数组,类似一个哈希表,要的时候,取下标就行,省略所有的IF语句 4.题目的要求是可以取到9999年,开始一看是9999,我错误地以为节省空间,用一个short来表示所有的变量就行,没想到还要9999*36*,结果导致了溢出,提交程序WA了好几次,最后将short改成int,一次AC,呵呵,高兴 Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator