1553----时钟

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

 

输入:

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

输出:

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

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

#include<iostream>
#include <iomanip>
using namespace std;

int main()
{
	double h,m,result;
	char c;
	while(cin>>h)
	{
		cin>>c>>m;
		if(h>=12) h-=12;
		//result=abs(m*11/2-h*30);
		result=m*11/2-h*30;
		if(result<0) result=0-result;
		if(result>180) result=360-result;
		cout<<setiosflags(ios::fixed)<<setprecision(2)<<result<<endl;
	}
	return 0;
}

 解析:求时针和分针的夹角(劣弧所对应的角)。需要注意的是分针指的一定是整刻度,而时针不一定,因为分针走的同时,时针也在微小的走,所以要求出时针偏离整刻度的偏移量。

分针走一格对应6度,此时时针要走0.5度(分针的速度是时针的12倍),(从整点开始算起)所以分针走过的度数为:m*6 ;

 时针走一小时对应30度                                                                              (从零点开始算起)所以时针走过的度数为:h*30+m*0.5

两者之差就是其中的一个角度,如该角度大于180度,就为优弧所对应的角,否则即为所求。

posted @ 2014-12-29 16:54  zhoudan  阅读(188)  评论(0)    收藏  举报