竹園論壇

標題: Q579 - ClockHands [打印本頁]

作者: HSCHE    時間: 2014-4-29 11:25
標題: Q579 - ClockHands
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);
  •         }
  • }








  • 歡迎光臨 竹園論壇 (http://forum.tfcis.org/) Powered by Discuz! X3.2