今年的第几天
题目描述:
输入年、月、日,计算该天是本年的第几天。
输入描述:
输入可能有多组测试数据,每一组测试数据包括三个整数年(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;
}
还没有任何评论,你来说两句吧!