题解
【基础】时钟旋转(2)
1 条题解
-
0
解题思路
题目要求计算时针从起始时间走到结束时间旋转了多少度,时间精确到分钟。
核心:时针每分钟转多少度?
时针走 12 小时(720 分钟)正好转 360 度,所以每分钟转 360÷720 = 0.5 度。
思路:
- 把起始时间和结束时间都转成分钟:小时×60 + 分钟
- 求时间差(分钟)
- 角度 = 时间差 × 0.5 度/分钟
- 保留 1 位小数输出
举例:从 01:00 到 01:05
- 时间差 5 分钟
- 角度 = 5 × 0.5 = 2.5 度
参考代码
#include <iostream> #include <iomanip> using namespace std; int main() { int h1, m1, h2, m2; char c; cin >> h1 >> c >> m1; // 起始时间 cin >> h2 >> c >> m2; // 结束时间 int a = h1 * 60 + m1; // 转分钟 int b = h2 * 60 + m2; int diff = b - a; // 时间差 double degree = diff * 0.5; // 每分钟 0.5 度 cout << fixed << setprecision(1) << degree << endl; return 0; }复杂度分析
- 时间复杂度:O(1)
- 空间复杂度:O(1)
- 1