思路:使用前缀和思想,要求的是从这一年的第一天到今天的差距天数,先定义一个数组,每个月多少天,然后求出这个数组的前缀和数组,这个数组的下标为n的数据就是n个月的天数和,只需要求出month-1的天数和再加上day,最后判断如果month>2,并且是闰年的话,sum再加一天。

#include<iostream>
using namespace std;

int main()
{
    int year = 0;
    int month = 0;
    int day = 0;
    cin>>year>>month>>day;
    int mday[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31};
    int sumday[13] = {0};
    for(int i =0;i<13;i++)
    {
        sumday[i] = mday[i];
        if(i!=0)
        {
            sumday[i]+=sumday[i-1];
        }
    }
    int sum = 0;
    sum = sumday[month-1] + day;
    if(month>2 && ((year%4==0)&&(year%100!=0)||(year%400==0)))
        sum+=1;
    cout<<sum<<endl;
    return 0 ;
}