当分针在一小时内从 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 = 时针从开始输入小时开始所经过的分钟)。
服用 LCM -
米 = (高*5*12 + 米)/12
12m = 60*h + 米
12米-米=60*高
11m = 60*h
因此,m = 60*h/11
现在,让我们考虑上面的示例并验证公式。
输入时间 = 4
时针和分针重合的时间(以分钟为单位)为:
分钟 = 60*小时/11
因此,m = 60*4/11
分钟 = 240/11 分钟。
同样,对于输入小时 = 5,
米=60*5/11
即300/11 分钟。
我们可以使用上面的公式并编写我们的解决方案。
伪代码
主函数:
coinciding_time(整数小时):
示例
下面是一个 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) [常数]
结论
在
.........................................................