本站遷移

因為我最近租用了網路空間以及網域,
故本站已遷移至新網站~
這邊的資訊已經正在進行搬移的工作~
希望各位可以到新網站去逛XD

New Website:
http://knightzone.org/

搜尋此網誌

2011年1月19日 星期三

[Zerojudge]d095: 579 - ClockHands

先把時鐘刻劃360格,一格1度,
則再將時針指向的位置的度數去跟分針指向的位置的度數進行絕對值相減,
即可得解。
(若大於180度,就利用360去減其值的絕對值去把它減到小於180度為止)

P.S. 時針指的刻度算法: 小時*30(一個小時30度) + 分/60 * 30(因為分針走一圈,時針就走30度)
分針指的刻度算法: 分*6(五分鐘走30度,則一分鐘走6度)

[C++](12ms, 762KB)
#include<iostream>
#include<iomanip>
#include<cmath>
using namespace std;
int main()
{
int H, M;
char recycle;
while( cin >> H >> recycle >> M )
{
if( H == 0 && M == 0 )
break;
double H_angle = static_cast<double>(H) * 30.0 + static_cast<double>(M) / 60.0 * 30.0;
double M_angle = static_cast<double>(M) * 6.0;
double angle = fabs( H_angle-M_angle );
while( angle > 180 )
angle = fabs( 360 - angle );
cout << fixed << setprecision(3) << angle << endl;
}
return 0;
}

0 意見:

張貼留言