查看: 2071|回復: 0
打印 上一主題 下一主題

[UVa] Q579 - ClockHands

[複製鏈接]
  • TA的每日心情
    慵懶
    2014-9-17 13:56
  • 簽到天數: 1 天

    [LV.1]初來乍到

    22

    主題

    57

    帖子

    533

    積分

    高級會員

    Rank: 4

    積分
    533

    台南一中資訊社新手達陣

    跳轉到指定樓層
    樓主
    發表於 2014-4-29 11:25:00 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式

    趕快加入我們來參與討論吧!

    您需要 登錄 才可以下載或查看,沒有帳號?加入我們

    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);
  •         }
  • }



  • 評分

    參與人數 1金幣 +1 收起 理由
    Sylveon + 1

    查看全部評分

    回復

    使用道具 檢舉

    您需要登錄後才可以回帖 登入 | 加入我們

    本版積分規則

    快速回覆 返回頂部 返回列表