题意:
        根据输入的日期,计算是这一年的第几天。
        保证年份为4位数且日期合法。
方法一:
数组模拟

思路:
        用数组存储每月的天数。
        首先,遍历月份,累加上每月的天数;
        再加上日数;
        最后,判断是否是闰年并且月份大于2,如果是,则加一。

      

#include <bits/stdc++.h>

using namespace std;
int month[12]={31,28,31,30,31,30,31,31,30,31,30,31};

int main(){
    int y,m,d;
    cin >> y >> m >> d;//输入年月日
    int sum=0;
    for(int i=1;i<m;i++){//加每月的天数
        sum+=month[i-1];
    }
    sum+=d;//加日数
    if(((y%4==0&&y%100!=0)||y%400==0)&&m>2)//闰年并且月份大于2,则加一
        sum++;
    cout << sum << endl;
    return 0;
}


时间复杂度:
空间复杂度:

方法二:
直接模拟

思路:
            思路跟方法一 一致。
            不过不需要数组存储月份的天数,直接通过 多IF语句 实现累加效果。

#include <bits/stdc++.h>

using namespace std;

int main(){
    int y,m,d;
    cin >> y >> m >> d;//输入年月日
    int sum=0;
    //加每月的天数
    if(m>1)
        sum+=31;
    if(m>2)
        sum+=28;
    if(m>3)
        sum+=31;
    if(m>4)
        sum+=30;
    if(m>5)
        sum+=31;
    if(m>6)
        sum+=30;
    if(m>7)
        sum+=31;
    if(m>8)
        sum+=31;
    if(m>9)
        sum+=30;
    if(m>10)
        sum+=31;
    if(m>11)
        sum+=30;
    sum+=d;//加日数
    if(((y%4==0&&y%100!=0)||y%400==0)&&m>2)//闰年并且月份大于2,则加一
        sum++;
    cout << sum << endl;
    return 0;
}

时间复杂度:
空间复杂度: