# Math# Time Conversion

j056 - 11650 - Mirror Clock

🔗 前往 ZeroJudge 原題

題目描述

題目要求將從鏡子中讀取的時間轉換為實際時間。鏡子中的時間是反轉的,因此需要計算實際時間。

解題思路

題目給定的時間格式為 HH:MM。由於鏡子會將時間反轉,因此需要將小時和分鐘都進行反轉。具體來說,將 HH:MM 轉換為 720 - (HH * 60 + MM) 分鐘,然後再將分鐘數轉換為小時和分鐘的格式。需要注意的是,如果計算出的分鐘數小於 60,則需要加上 720,以確保時間在 00:00 到 23:59 之間。另外,如果輸入的小時數是 12,則需要將其轉換為 0。

複雜度分析

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

程式碼

#include <iostream>
using namespace std;
int n,x,y;
char c;
int main(){
	cin.tie(0); ios::sync_with_stdio(0);
	cin >> n;
	while(n--){
		cin >> x >> c >> y;
		if(x==12)x=0;
		int v=720-(x*60+y);
		if(v<60)v+=720;
		cout << v/600 << v/60%10 << ":" << v%60/10 << v%60%10 << "\n";
	}
}

Discussion