| ||||||||||
| 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 | |||||||||
Re:容易理解的思路In Reply To:容易理解的思路 Posted by:makuiyu at 2014-01-11 10:51:07 > 按天计算超时,索性就先按年计算,然后剩下的按天计算
>
> char week[7][10] = {"Sunday", "Monday", "Tuesday", "Wednesday",
> "Thursday", "Friday", "Saturday"};
> int month[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
>
> bool is_leap_year(int y)
> {
> return (y%400==0 || (y%100!=0 && y%4==0));
> }
>
> int main()
> {
> int n, y, m, d, w;
> while(scanf("%d", &n)!=EOF && n!=-1)
> {
> w = (6+n) % 7;//计算星期
> for(y = 2000, m = 1, d = 1; n>365; n-=365,++y)
> //按年计算,每次减365,如果是闰年,再减1
> if(is_leap_year(y))
> --n;
> while(n--)//按天计算
> {
> if(is_leap_year(y))
> month[2] = 29;
> else
> month[2] = 28;
> ++d;
> if(d > month[m])
> {
> d = 1;
> ++m;
> if(m > 12)
> {
> m = 1;
> ++y;
> }
> }
> }
> printf("%04d-%02d-%02d %s\n", y, m, d, week[w]);
> }
> return 0;
> }
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator