D.579 - ClockHands

本题依靠钟表时、分针的规律求解.
时针:
12h*60=720 --> 360   ///720分钟转一圈,每分钟0.5度
        1  --> 0.5
分针:
60 --> 360   ///60分钟转一圈,每分钟6度
 1 -->  6
/******最重要的一点***分针所走的时间,时针会走相应的度数***********/
差值:
h*60*0.5+m*0.5-m*6;
=>30*h-5.5*m;
最后把答案控制在[0.000,180.000]之间就行了.

int main()
{
    double H,M;
    while(scanf("%lf:%lf",&H,&M)!=EOF)
    {
        if(H==0.0&&M==0.0)
            break;
        double ans=fabs(30.0*H-5.5*M);
        int time=ans/360;
        ans=ans-360.0*time;
        printf("%.3lf\n",ans<180.0?ans:360.0-ans);
    }
    return 0;
}

转载于:https://my.oschina.net/pandacub/blog/140556

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值