原題地址:牛客網
題目描述:
輸入年、月、日,計算該天是本年的第幾天。
輸入描述:
包括三個整數年(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