Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

AC2080,半小时写代码,半个小时调试

Posted by gfedcba at 2009-01-06 14:28:56 on Problem 2080
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:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator