給定小時後,分針和時針重合的時間


當分針在一小時內從 12 移動到 12 時,時針也從前一個小時移動到下一個小時。

因此,每小時,分針和時針都會重合一次。

問題陳述

給定一個輸入小時,找到下一小時內分針和時針重合的時間(以分鐘為單位)。

示例

輸入 - 小時 = 4

輸出 - 重合時間:240/11 分鐘。

我們將在方法中進一步討論解釋。

輸入 - 小時 = 5

輸出 - 重合時間:300/11 分鐘。

解釋和方法

當分針在一小時內完成一個完整的圓周運動時,時針也從一個小時移動到另一個小時。因此,從數學上講 -;

當分針移動 60 分鐘時,時針移動 5 分鐘。

或 -

當分針走 60 步時,時針走 5 步。

因此 -

分針的 60 步 == 時針的 5 步

因此 -

分針的 1 步 = 時針的 1/12 步

現在,假設分針和時針重合需要 m 分鐘。

如果輸入小時為 h -

那麼分針必須移動 h*5 分鐘加上時針從該小時開始移動的分鐘數。

因此,m = h*5 + m/12。(m/12 = 時針從起始輸入小時開始移動的分鐘數)。

取最小公倍數 -

m = (h*5*12 + m)/12

12m = 60*h + m

12m-m = 60*h

11m = 60*h

因此,m = 60*h/11

現在,讓我們考慮上面的例子並驗證公式。

  • 輸入小時 = 4

  • 分針和時針重合的時間(以分鐘為單位)將為

    m = 60*小時/11

    因此,m = 60*4/11

    m = 240/11 分鐘。

  • 同樣,對於輸入小時 = 5,

  • m = 60*5/11

    即 300/11 分鐘。

我們可以使用上述公式並編寫我們的解決方案程式碼。

虛擬碼

main()

  • 初始化輸入小時。

  • 呼叫函式 coinciding_time(hour)。

coinciding_time(int hour)

  • time -> 60*hour/11

  • 列印時間。

示例

下面是一個 C++ 程式,用於查詢給定小時後分針和時針重合的時間。

#include<bits/stdc++.h>
using namespace std;
//Function to find the time in minutes.
void coincide_time(int hour){
   //Temporary variable
   int temp = 60*hour;
   cout<<"Coinciding time: ";
   cout<< temp<<"/"<<11<<" minutes"<<endl;
}
int main(){
   //Initialize the input hour
   int hour = 8;
   //Function call
   coincide_time(hour);
   return 0;
}

輸出

Coinciding time: 480/11 minutes

分析

時間複雜度 - O(1) [常數]

空間複雜度 - O(1) [常數]

結論

在本文中,我們找到了時針和分針重合的時間。我們使用單位制推導了公式,並使用一些示例理解了它。然後,我們使用該公式編寫了虛擬碼,並在 C++ 中編寫了解決方案程式。

更新於: 2023-08-16

494 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.