#44300: cpp解


11331076@stu.tshs.tp.edu.tw (陳畇寧)

學校 : 臺北市私立東山高級中學
編號 : 278319
來源 : [123.50.44.70]
最後登入時間 :
2024-12-04 21:55:55
o921. 生日快樂 (Birthday) -- TOI練習賽202409新手組第1題 | From: [123.50.44.70] | 發表日期 : 2024-11-22 21:16

我來貢獻了~~~很白話吧。

```

#include <iostream>
#include <vector>
using namespace std;

// 定義每月的天數 (不考慮閏年)
const vector<int> days_in_month = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

// 函數:計算從1月1日到某個日期的天數
int days_from_start_of_year(int month, int day) {
    int days = 0;
    for (int i = 0; i < month - 1; ++i) {
        days += days_in_month[i];  // 累加前幾個月的天數
    }
    days += day;  // 加上當月的天數
    return days;
}

int main() {
    int current_month, current_day;
    int birthday_month, birthday_day;

    // 讀入當前日期和生日日期
    cin >> current_month >> current_day;
    cin >> birthday_month >> birthday_day;

    // 計算當前日期和生日的天數
    int current_day_of_year = days_from_start_of_year(current_month, current_day);
    int birthday_day_of_year = days_from_start_of_year(birthday_month, birthday_day);

    // 如果當前日期已經過了生日,則生日是明年的
    if (current_day_of_year > birthday_day_of_year) {
        birthday_day_of_year += 365;  // 假設明年有365天
    }

    // 計算距離下一次生日還有多少天
    int days_until_birthday = birthday_day_of_year - current_day_of_year;

    // 輸出結果
    cout << days_until_birthday << endl;

    return 0;
}

```

 
ZeroJudge Forum