微博上有個自稱“大笨鐘V”的傢伙,每天敲鐘催促碼農們愛惜身體早點睡覺。不過由於笨鍾自己作息也不是很規律,所以敲鐘並不定時。一般敲鐘的點數是根據敲鐘時間而定的,如果正好在某個整點敲,那麼“當”數就等於那個整點數;如果過了整點,就敲下一個整點數。另外,雖然一天有24小時,鍾卻是隻在後半天敲1~12下。例如在23:00敲鐘,就是“噹噹噹噹噹噹噹噹噹噹噹”,而到了23:01就會是“噹噹噹噹噹噹噹噹噹噹噹噹”。在午夜00:00到中午12:00期間(端點時間包括在內),笨鍾是不敲的。
下面就請你寫個程序,根據當前時間替大笨鐘敲鍾。
輸入格式:
輸入第一行按照hh:mm
的格式給出當前時間。其中hh
是小時,在00到23之間;mm
是分鐘,在00到59之間。
輸出格式:
根據當前時間替大笨鐘敲鍾,即在一行中輸出相應數量個Dang
。如果不是敲鐘期,則輸出:
Only hh:mm. Too early to Dang.
其中hh:mm
是輸入的時間。
輸入樣例1:
19:05
輸出樣例1:
DangDangDangDangDangDangDangDang
輸入樣例2:
07:05
輸出樣例2:
Only 07:05. Too early to Dang.
解析:普通的分支控制加循環,注意幾個特殊點
1、12:00不敲,而12:01要敲一下
2、除了00:00~12:00,n整點敲n下,不是整點多敲一下
//先討論小時,再討論分鐘
#include <stdio.h>
int main () {
int hh, mm;
scanf("%d:%d", &hh, &mm);
if ( hh >= 0 && hh <= 11 )
printf("Only %02d:%02d. Too early to Dang.", hh, mm);
else if ( hh == 12 ) { //12比較特殊
if ( mm == 0 )
printf("Only %02d:%02d. Too early to Dang.", hh, mm);
else
printf("Dang");
}
else {
for ( int i = 0 ; i < hh % 12; i++ )
printf("Dang");
if ( mm != 0 ) //不是整點多敲一下
printf("Dang");
}
return 0;
}