当前位置: 代码迷 >> 综合 >> 题目1070:今年的第几天? 九度OJ
  详细解决方案

题目1070:今年的第几天? 九度OJ

热度:18   发布时间:2023-09-24 07:04:48.0
题目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;
}