您的位置:首页

九度OJ 1070 今年的第几天?(模拟)

2017-06-03 16:10 405 查看
题目1070:今年的第几天?

时间限制:1 秒

内存限制:32 兆

特殊判题:否

提交:3491

解决:1936

题目描写叙述:

输入年、月、日,计算该天是本年的第几天。

输入:

包含三个整数年(1<=Y<=3000)、月(1<=M<=12)、日(1<=D<=31)。

输出:
输入可能有多组測试数据。对于每一组測试数据,
输出一个整数,代表Input中的年、月、日相应本年的第几天。

例子输入:
1990 9 20
2000 5 1


例子输出:
263
122


#include<stdio.h>
int month[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int isLeapYear(int Y){
if(Y%4==0&&Y%100!=0||Y%400==0)
return 1;
else return 0;
}
int  Y,M,D;
void solve()
{
int sum=0;
for(int i=1;i<=M-1;++i){
sum+=month[i];
}
sum+=D;
printf("%d\n",sum);
}
int main(int argc, char *argv[])
{
// freopen("1070.in", "r", stdin);
while(~scanf("%d%d%d",&Y,&M,&D))
{
if(isLeapYear(Y)){
month[2]+=1;
solve();
month[2]-=1;
}
else
solve();

}
return 0;
}

/**************************************************************
Problem: 1070
User: kirchhoff
Language: C
Result: Accepted
Time:10 ms
Memory:912 kb
****************************************************************/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: