给定小时后,分针和时针重合的时间


当分针在一小时内从 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.