【考研每日一題13】今年的第幾天?

原題地址:牛客網

題目描述:

輸入年、月、日,計算該天是本年的第幾天。

輸入描述:

包括三個整數年(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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章