5-59 大笨鐘   (10分)

微博上有個自稱“大笨鐘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;
}



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章