首页 > 代码库 > 九度OJ 1070 今年的第几天?(模拟)

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

题目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
****************************************************************/


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