# Modulo Operation# String# Array

e908 - 星期幾咧

🔗 前往 ZeroJudge 原題

題目描述

題目要求計算在給定的星期幾加上 N 天後是星期幾。輸入包含一個星期幾的英文單字和一個正整數 N,輸出 N 天後是星期幾的英文單字。

解題思路

這題的解題思路很簡單,就是利用星期是循環的特性。首先,將輸入的星期幾的英文單字轉換為一個數字,例如 Sunday 為 0,Monday 為 1,以此類推。然後,將這個數字加上 N,再對 7 取模,得到 N 天後是星期幾的數字。最後,將這個數字轉換為對應的星期幾的英文單字,並輸出。

複雜度分析

  • 時間複雜度: O(1)
  • 空間複雜度: O(1)

程式碼

#include <iostream>
#include <string>
using namespace std;
int main(){
	long long int y,i;
	string a;
	string w[7]={"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"};
	while(cin >> a){
		cin >> y;
		for(i=0;i<7;i++){
			if(a==w[i]){
				break;
			}
		}
		cout << w[(i+y)%7] << "\n";
	}
}

Discussion