今年的第几天

正文索引 [隐藏]

题目描述:

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

输入描述:

输入可能有多组测试数据,每一组测试数据包括三个整数年(1<=Y<=3000)、月(1<=M<=12)、日(1<=D<=31)。

输出描述:

输出一个整数,代表Input中的年、月、日对应本年的第几天。

输入样例1:

1990 9 20

输出样例1:

263

输入样例2:

2000 5 1

输出样例2:

122

解题思路:

这真的是快手校招的水题嘛?我读书读的少锁眉牛客网不要骗我嗷尴尬记得CSP认证也有这种日期计算的水题【CCF】日期计算,只不过这题是给出年月日求天数,CSP是给出年和天数求月日。

AC代码:

#include <bits/stdc++.h>
using namespace std;
#define Up(i,a,b) for(int i = a; i <= b; i++)

int main()
{
    int a[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31};
    int y,m,d; 
    cin >> y >> m >> d;
    int cnt = 0;   //本年的第几天  
    if((y%4==0&&y%100!=0) || y%400==0) //闰年
    {
        a[2]++;   //2月有29天
    }
    Up(i,1,m-1)
    {
        cnt += a[i];
    }
    cnt += d;
    cout << cnt << endl;
    return 0;
}