[UVA]12019 Doom’s Day Algorithm
本人於該blog的全部文章轉移至[UVA] 12019 Doom’s Day Algorithm – KKWBlog (kkwtech.com)該網域下,其後此處不進行更新,一律於新站點更新。
f709. 12019 – Doom’s Day Algorithm – 高中生程式解題系統 (zerojudge.tw)
先附上題目來源
這題其實滿簡單的,不過之前沒碰過這樣的題目所以就來記錄一下
題目重點:
題目前面提到的一堆理論說明,其實大部分可以忽略,重點只要找到去年最一天是星期幾即可。
解題思路:
找出去年最後一天後,並依照題目給的日期得出天數差,最後再MOD 7就能得出正確的答案。
#include <iostream>
using namespace std;
int main()
{
string day[7] = {"Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"};
int daysOfMonth[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 30};
int n = 0;
cin >> n;
while (n--)
{
int m = 0, d = 0;
cin >> m >> d;
int res_day = 4; //因為2010年最後一天為星期5對應至day陣列的index則是4
//加上前面月份的天數
for (int i = 1; i < m; i++)
{
res_day += daysOfMonth[i - 1];
}
res_day = (res_day + d) % 7; //加上該月份天數也就是d並mod7得出正確的day index
cout << day[res_day] << endl;
}
}
Filed under: UVA - @ 2021 年 9 月 3 日 上午 10:49
標籤: uva