• 九度 1553:时钟(模拟题)


    题目描述:

    如图,给定任意时刻,求时针和分针的夹角(劣弧所对应的角)。

    输入:

    输入包含多组测试数据,每组测试数据由一个按hh:mm表示的时刻组成。

    输出:

    对于每组测试数据,输出一个浮点数,代表时针和分针的夹角(劣弧对应的角),用角度表示,结果保留两位小数。

    样例输入:
    03:00
    14:45
    样例输出:
    90.00
    172.50

    总结:

    1. 不要忘了, 分针的角度可以由分直接转换, 而时针则需要考虑分

    代码:

    #include <iostream>
    #include <stdio.h>
    #include <math.h>
    #include <cstdlib>
    #include <cstring>
    using namespace std;
    
    char time1[20];
    
    double timeToDegree(char *time) {
        int hour = 0, mini = 0;
    
        for(int i = 0; i < 2; i ++) {
            hour *= 10;
            mini *= 10;
            hour += time[0+i] - '0';
            mini += time[3+i] - '0';
        }
    
        hour %= 12;
    
        double degree1 = hour*360.0/12;
        double degree2 = mini*360.0/60;
    
        degree1 += (360.0/12)*mini/60;
        double dis = 0.0;
        if(degree1 > degree2)
            dis = degree1 - degree2;
        else
            dis = degree2 - degree1;
            
            
        if(dis > 180.0) {
            dis = 180 - (dis-180);
            //dis = 360.0-max(degree1, degree2) + min(degree1, degree2);
        }
        return dis;
    }
    
    int main() {
        while(scanf("%s", time1) != EOF) {
            double degree1 = timeToDegree(time1);
            double dis = timeToDegree(time1);
            printf("%0.2f
    ", dis);
        }
        return 0;
    }
  • 相关阅读:
    IDEA右键新建时没有Java Class选项
    捕获摄像头视频VC
    重叠IO与IOCP
    (八)内存管理与内存分配
    DebugView使用详解
    (六) 中断机制
    (五) proc文件系统
    bash 之备份文件
    bash 遍历目录文件
    (四) linux内核模块编程
  • 原文地址:https://www.cnblogs.com/xinsheng/p/3606081.html
Copyright © 2020-2023  润新知