九度 1553:时钟(模拟题)
生活随笔
收集整理的這篇文章主要介紹了
九度 1553:时钟(模拟题)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
- 題目描述:
-
如圖,給定任意時刻,求時針和分針的夾角(劣弧所對應(yīng)的角)。
?
- 輸入:
-
輸入包含多組測試數(shù)據(jù),每組測試數(shù)據(jù)由一個按hh:mm表示的時刻組成。
?
- 輸出:
-
對于每組測試數(shù)據(jù),輸出一個浮點數(shù),代表時針和分針的夾角(劣弧對應(yīng)的角),用角度表示,結(jié)果保留兩位小數(shù)。
?
- 樣例輸入:
-
03:00 14:45
- 樣例輸出:
-
90.00 172.50
總結(jié):
1. 不要忘了, 分針的角度可以由分直接轉(zhuǎn)換, 而時針則需要考慮分
?
代碼:
#include <iostream> #include <stdio.h> #include <math.h> #include <cstdlib> #include <cstring> using namespace std;char time1[20];double timeToDegree(char *time) {int hour = 0, mini = 0;for(int i = 0; i < 2; i ++) {hour *= 10;mini *= 10;hour += time[0+i] - '0';mini += time[3+i] - '0';}hour %= 12;double degree1 = hour*360.0/12;double degree2 = mini*360.0/60;degree1 += (360.0/12)*mini/60;double dis = 0.0;if(degree1 > degree2)dis = degree1 - degree2;elsedis = degree2 - degree1;if(dis > 180.0) {dis = 180 - (dis-180);//dis = 360.0-max(degree1, degree2) + min(degree1, degree2); }return dis; }int main() {while(scanf("%s", time1) != EOF) {double degree1 = timeToDegree(time1);double dis = timeToDegree(time1);printf("%0.2f\n", dis);}return 0; }
?
轉(zhuǎn)載于:https://www.cnblogs.com/xinsheng/p/3606081.html
總結(jié)
以上是生活随笔為你收集整理的九度 1553:时钟(模拟题)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 求一个好听的侦探名字!
- 下一篇: 屏蔽Drupal中的“Notice: U