原题地址:牛客网
题目描述:
输入年、月、日,计算该天是本年的第几天。
输入描述:
包括三个整数年(1<=Y<=3000)、月(1<=M<=12)、日(1<=D<=31)。
输出描述:
输入可能有多组测试数据,对于每一组测试数据, 输出一个整数,代表Input中的年、月、日对应本年的第几天。
输入
1990 9 20 2000 5 1
输出
263 122
分析:
判断闰年先,
普通闰年:公历年份是4的倍数的,一般是闰年。(如2004年就是闰年);
世纪闰年:公历年份是整百数的,必须是400的倍数才是闰年(如1900年不是世纪闰年,2000年是世纪闰年);
然后按照闰年2月29天,其他不变。
按照月每日相加即可。
代码:
#include<iostream>
using namespace std;
int mon[12]={31,28,31,30,31,30,31,31,30,31,30,31};
void jud(int n)
{
if(n%100==0&&n%400==0)mon[1]=29;
else if(n%4==0)mon[1]=29;
else mon[1]=28;
}
int main()
{
int y,m,d;
while(cin>>y>>m>>d)
{
jud(y);
int ans=0;
for(int i=0;i<m-1;i++)
{
ans=ans+mon[i];
}
ans=ans+d;
cout<<ans<<endl;
}
return 0;
}
2020.4.1