趕快加入我們來參與討論吧!
您需要 登錄 才可以下載或查看,沒有帳號?加入我們
x
Q579:ClockHands 在一般的時鐘上通常有兩根指針:時針、分針。這個題目是告訴你幾點幾分,請你的程式回應時針和分針之間的角度。請注意:所有的角度請回應最小的正角度。例如:9:00是90度,不是 -90度,也不是270度。 Input 輸入是一連串的時間,每個時間一行,以下列的格式出現: H:M。 1<= H <= 12 00<= M <=59 如果時間是0:00代表輸入結束了。請注意:H可能是1或2位數,M則總是以2位數出現.。(也就是你在一般電子錶上看到的模式。) Output 請輸出對應輸入時間的時針和分針間的最小正角度。此角度應該介於0到180度。每個輸出單獨一行。每個輸出至小數點以下第三位。 Sample Iutput 12:00
9:00
8:10
0:00 Sample Output 0.000
90.000
175.000
在此附上題目連結 UVA:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=24&page=show_problem&problem=520 LUCKY CAT:http://luckycat.kshs.kh.edu.tw/homework/q579.htm 解題感想:這題其實難度不高,只要看清楚題目,AC應該不難
AC CODE: #include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<stack>
#include<vector>
using namespace std;
int main()
{
int a,b,w;
double hours,minutes,ans;
string k;
while(scanf("%d:%d",&a,&b))
{
if(a==0&&b==0) return 0;
hours=(double)a*30+0.5*(double)b;
minutes=b*6;
if(hours>minutes) ans=hours-minutes;
else ans=minutes-hours;
if(ans>180) ans=360-ans;
printf("%.3f\n",ans);
}
}
|