题目1070:今年的第几天?
时间限制:1 秒
内存限制:32 兆
特殊判题:否
提交:7611
解决:4208
-
题目描述:
-
输入年、月、日,计算该天是本年的第几天。
-
输入:
-
包括三个整数年(1<=Y<=3000)、月(1<=M<=12)、日(1<=D<=31)。
-
输出:
-
输入可能有多组测试数据,对于每一组测试数据,输出一个整数,代表Input中的年、月、日对应本年的第几天。
-
样例输入:
-
1990 9 20 2000 5 1
-
样例输出:
-
263 122
-
来源:
- 2003年清华大学计算机研究生机试真题
-
#include <iostream> #include <cstdio> #define ISLEAP(x) (x%4==0&&x%100!=0)||x%400==0 ?1:0 using namespace std; int dayOfMonth[13][2]={ 0,0, 31,31, 28,29, 31,31, 30,30, 31,31, 30,30, 31,31, 31,31, 30,30, 31,31, 30,30, 31,31}; int main(){ int y,m,d; int days; while(scanf("%d%d%d",&y,&m,&d)!=EOF){ days=0; int moncont=1; while(moncont<m){ days+=dayOfMonth[moncont][ISLEAP(y)]; moncont++; } days+=d; cout<<days<<endl; } return 0; }
-