【題解】UVA 12019 Doom’s Day Algorithm

【題目敘述】https://zerojudge.tw/ShowProblem?problemid=f709 (考生答對率: 74.56%)
【解題想法】

  • 建表 doom[13] = {-1, 10, 21, 7, 4, 9, 6, 11, 8, 5, 10, 7, 12}; 每個月的doomsday。
  • 輸入月份、日期後,查表求當月的doomsday,計算日期與doomsday的天數差距。
#include <iostream>
using namespace std;
int doom[13] = {-1, 10, 21, 7, 4, 9, 6, 11, 8, 5, 10, 7, 12};
string date[] = {"Monday", "Tuesday", "Wednesday",
    "Thursday", "Friday", "Saturday", "Sunday"};

int main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    int T, m, d;
    cin >> T;
    while (T--) {
        cin >> m >> d;
        int delta = (d - doom[m]) % 7;
        if (delta >= 0){
            cout << date[delta] << "\n";
        } else {
            cout << date[7 + delta] << "\n";
        }
    }
    return 0;
}
分享本文 Share with friends