j056 - 11650 - Mirror Clock
題目描述
題目要求將從鏡子中讀取的時間轉換為實際時間。鏡子中的時間是反轉的,因此需要計算實際時間。
解題思路
題目給定的時間格式為 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";
}
}