# Math# Time Conversion

d669 - 11677 - Alarm Clock

🔗 前往 ZeroJudge 原題

題目描述

題目要求計算從現在時間到鬧鐘響鈴之間的時間差,以分鐘為單位。輸入包含現在時間 (h1:m1) 和鬧鐘時間 (h2:m2),輸出它們之間的分鐘差。

解題思路

將輸入的時間轉換成分鐘數,然後計算兩個時間點之間的時間差。由於時間可能跨越午夜,需要考慮鬧鐘時間在第二天響鈴的情況。如果鬧鐘時間大於現在時間,則直接相減;否則,需要加上一天的分鐘數 (1440) 再相減。

複雜度分析

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

程式碼

#include <iostream>

using namespace std;

int main (){
	int h1,m1,h2,m2=0;
	int sum=0,sum2=0;
	while(cin >> h1 >> m1 >> h2 >> m2){
		if(h1!=0||m1!=0||h2!=0||m2!=0){
			if(h1==0){
				h1+=24;
			}
			if(h2==0){
				h2+=24;
			}
			sum=h1*60+m1;
			sum2=h2*60+m2;
			if(sum2>=sum){
				cout << sum2-sum << endl; 
			}
			else{
				cout << 1440-(sum-sum2) << endl; 
			}
		}
		
	}
	
}

Discussion