top1编程
← 返回题目
题解

【基础】时钟旋转(2)

1 条题解

  • 0
    @ 2026-7-31 14:50:59

    解题思路

    题目要求计算时针从起始时间走到结束时间旋转了多少度,时间精确到分钟。

    核心:时针每分钟转多少度?

    时针走 12 小时(720 分钟)正好转 360 度,所以每分钟转 360÷720 = 0.5 度。

    思路:

    1. 把起始时间和结束时间都转成分钟:小时×60 + 分钟
    2. 求时间差(分钟)
    3. 角度 = 时间差 × 0.5 度/分钟
    4. 保留 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