zoukankan      html  css  js  c++  java
  • 九度 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;
    }
  • 相关阅读:
    CSS3中的3D效果
    JavaScript判断数据类型方法?
    JS函数中的arguments是什么?
    Vue组件之间通信的几种方式
    Vue插槽详解
    CSS文本溢出效果&滚动条样式设置
    Fibonacci数列计算的三种方法
    堆内存和栈内存详解[转]
    带头结点的单链表反转
    汉诺塔问题
  • 原文地址:https://www.cnblogs.com/xinsheng/p/3606081.html
Copyright © 2011-2022 走看看