給定小時後,分針和時針重合的時間
當分針在一小時內從 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
同樣,對於輸入小時 = 5,
分針和時針重合的時間(以分鐘為單位)將為
m = 60*小時/11
因此,m = 60*4/11
m = 240/11 分鐘。
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++ 中編寫了解決方案程式。
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP