每日一九度之 题目1070:今年的第几天?
时间限制:1 秒
内存限制:32 兆
特殊判题:否
提交:6251
解决:3461
输入年、月、日,计算该天是本年的第几天。
</dd> </dl> <dl> <dt> 输入: </dt> <dd>包括三个整数年(1<=Y<=3000)、月(1<=M<=12)、日(1<=D<=31)。
</dd> </dl> <dl> <dt> 输出: </dt> <dd> 输入可能有多组测试数据,对于每一组测试数据,
输出一个整数,代表Input中的年、月、日对应本年的第几天。
</dd> </dl> <dl> <dt> 样例输入: </dt> <dd> 1990 9 20 2000 5 1</dd> </dl> <dl> <dt> 样例输出: </dt> <dd>
263 122</dd> </dl>
记住闰年的规律:
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; }