1.26 [hduoj] 2076 夹角有多大

Problem Description

时间过的好快,一个学期就这么的过去了,xhd在傻傻的看着表,出于对数据的渴望,突然他想知道这个表的时针和分针的夹角是多少。现在xhd知道的只有时间,请你帮他算出这个夹角。

注:夹角的范围[0,180],时针和分针的转动是连续而不是离散的。

Input

输入数据的第一行是一个数据T,表示有T组数据。
每组数据有三个整数h(0 <= h < 24),m(0 <= m < 60),s(0 <= s < 60)分别表示时、分、秒。

Output

对于每组输入数据,输出夹角的大小的整数部分。

Sample Input

2

8 3 17

5 13 30

Sample Output

138

75

#include<stdio.h>
int n;
double hour,min,result;
void main()
{
    while(scanf("%d",&n)!=EOF)
    {
        while(n--)
        {
            int a,b,c;
            scanf("%d%d%d",&a,&b,&c);
            if(a>12)
                a-=12;
            hour=(12-a)*30-0.5*b-0.5*c/60;
            min=360-b*6-c*0.1;
            if(hour>min)
                result=hour-min;
            else
                result=min-hour;
            if(result>=180)
                result=360-result;
            printf("%d\n",(int)result);
        }
    }
}

每个小时相差360/12=30°,每分钟分针转360/60=6°,时针走30/60=0.5°,每秒分针走6/60=0.1°,时针走0.5/60

我的想法是各自计算时针与12的夹角和分针与12的夹角,然后小的夹角数据减大的夹角数据。还要注意24小时计时制,所以如果小时大于12的话,就要减去12.

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值