题解 UVA579 【Clock Hands】
数学计算题——求角度
若时间为
分针的角度为
夹角便是两者的差的绝对值(abs):((
怎么推?
设时为
及此时为
大家都知道钟面上一大格 =
时针一小时走一大格,则每分钟走
分针一分钟走一小格,则每分钟走 6° 秒钟每一分钟走一圈,则每分钟走360°
这道题的大意是:给你一个时间,求在始终上时针与分针的夹角。
解题思路是将时针在盘的位置(0~1)减去分针在盘的位置。乘360。如果大于180取对小于180度的角。
上代码
#include<stdio.h>
int main () {
double h,m;//因为是浮点数,所以要用double
double d,dh,dm;
while (scanf("%lf:%lf",&h,&m)) {
if (h == 0 && m == 0)
break;
dh = h * 30;
dm = m * 6;
dh = dh + m * 0.5;
d = dh - dm;
if (d < 0)//进行条件语句判断
d = -d;
if (d > 180)
d = 360 - d;
printf("%.3lf\n",d);//输出时要保留3位小数。
}
return 0;
}