-
时间限制:1 秒
内存限制:128 兆
特殊判题:否
提交:1484
解决:572
-
题目描述:
-
如图,给定任意时刻,求时针和分针的夹角(劣弧所对应的角)。
-
输入:
-
输入包含多组测试数据,每组测试数据由一个按hh:mm表示的时刻组成。
-
输出:
-
对于每组测试数据,输出一个浮点数,代表时针和分针的夹角(劣弧对应的角),用角度表示,结果保留两位小数。
-
样例输入:
-
03:00 14:45
-
样例输出:
-
90.00 172.50
-
//JOBDU 1553 #include<iostream> #include<stdio.h> #include<cmath> const float pPer = 30;//每五分钟或每一小时刻度是30度 using namespace std; class Time { int hour; int min; public: Time(int x,int y):hour(x),min(y){}; float calAngel(const Time& x); inline void t24_12(Time& x)//12小时制 { if(x.hour>12) x.hour-=12; } }; float Time::calAngel(const Time& x) { float hourAng = x.hour*pPer+(float)x.min/2;//时针与12时角 float minAng = x.min*6;//分针与12时角 float ans = minAng-hourAng; while(ans>180 || ans<0)//劣角 { if(ans>180) ans = 360-ans; if(ans<0) ans += 360; } printf("%.2f\n",ans); return ans; } int main(void) { int h,m; while(scanf("%d:%d",&h,&m)!=EOF) { Time t(h,m); t.t24_12(t); t.calAngel(t); } return 0; } /************************************************************** Problem: 1553 User: ranchothu Language: C++ Result: Accepted Time:0 ms Memory:1520 kb ****************************************************************/