给定小时后,分针和时针重合的时间
当分针在一小时内从 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