时间限制:1 秒
内存限制:32 兆
特殊判题:否
提交:6251
解决:3461
输入年、月、日,计算该天是本年的第几天。
包括三个整数年(1<=Y<=3000)、月(1<=M<=12)、日(1<=D<=31)。
1990 9 20 2000 5 1
263 122
记住闰年的规律:
4年一闰,一百年不闰,四百年又闰。
//Asimple #include <iostream> #include <algorithm> #include <cstring> #include <cstdio> #include <vector> #include <cctype> #include <cstdlib> #include <stack> #include <cmath> #include <set> #include <map> #include <string> #include <queue> #include <limits.h> #define INF 0x7fffffff using namespace std; const int maxn = 105; typedef long long ll; int y, m, d; int a[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31}; int main(){ while( ~scanf("%d %d %d",&y, &m, &d) ){ int day = 0; for(int i=0; i<m; i++){ day += a[i]; if( i == 2 && ((y % 4 == 0 && y % 100!=0) || y % 400 == 0)) day += 1; } day += d; printf("%d\n",day); } return 0; }
原文:http://www.cnblogs.com/Asimple/p/5929497.html