2010年2月9日 星期二

2010/02/09 聯集

讀入兩個正整數a以及b,請書出介於a及b之間(包含a、b)2、3、5倍數的聯集大小。
例如1及10之堅,是2倍數集合為{2、4、6、8、10};是3倍數為{3、6、9};是5倍數集合為{5、10},上述三個集合的聯集為{2、3、4、5、6、8、9、10},故聯集大小為8。
輸入規範:輸入檔案中可能包含了好幾列的測試資料,每一列有兩個整數(即a及b)。a=0、b=0代表輸入結束。
輸出規範:對每一列輸入,輸出聯集的大小(請參考輸出範例)。

輸入範例:
1  10
10  20
0  0
輸出範例:
8
7

2010/02/08 攜帶容器裝水

現有容器容量分別為3公升、5公升、10公升、20公升以及40公升等五種,容器個數不限。輸入一欲帶回的公升數,計算出需攜帶的容器容量最小(x)、個數最少(y)與未裝滿容量最小(z),x+y+z最小之組合,若有相同者,均需要列出。
輸入格式:0~60之整數
輸出格式:(總個數):由大至小排列使用容器。

輸入範例:27
輸出範例:(3):20  5  3

出自  程式設計隊訓練教材 No.70 攜帶容器裝水

2010年2月5日 星期五

2010/02/05 天平秤重

有一天平,共有四個法碼,分別為1、3、9、27公克。請設計一程式,由"in.txt"輸入某一物品質量(1~40公克)。

輸入範例:
8公克
輸出範例:
左盤9公克,右盤1公克

2010年2月4日 星期四

2010/02/04 方塊積木

3歲的小明喜歡玩他的方塊積木,他總是把方塊疊在一起,型成高度不一的方塊堆。然後他說:這是一面牆。五歲的妹妹小每聽到了就跟小明說:真正的牆高度應該要一樣才行。小明聽了覺得有道理,於是決定要搬動一些方塊使所有方塊堆的高度一樣。如下圖。由於小明是個懶惰的小孩,他想要搬動最小數目的方塊,以達成這個目的,你能幫助他嗎? (輸入規範:每組資料有兩列 第一列有一個數字N,代表有幾堆方塊,第二列有n個數字,分別代表這N堆方塊的高度H。另1<=n<=50、1<=H<=100。方塊的總數一定可以整除堆數N,也就是說,一定可以使所有方塊同高度。)
           ▉
           ▉
▉     ▉▉  
▉   ▉ ▉▉ →▉▉▉▉▉▉
▉   ▉ ▉▉  ▉▉▉▉▉▉
▉▉▉ ▉▉  ▉▉▉▉▉▉
▉▉▉▉▉▉  ▉▉▉▉▉▉

輸入範例:
6
5 2 4 1 7 5
輸出範例:
5

2010年2月3日 星期三

2010/02/03 進位判斷

在小學時我們都做過加法的運算,就是把2個整數向右靠齊。然後由右至左一位一位相加。因為如果相加的結果大於等於10就有進位(carry)出現。你的任務就是要判斷兩個整數相加時,產生了幾次進位的情況。

輸入範例:
555 555
輸出範例:
3

2010年2月2日 星期二

2010/02/02 字串重組

請輸入兩組字串,每組長度為八個字元。請注意,字串必須是由A、B、C、D、E、F、G、H這些英文字母所組合的,且每個英文字母再一個字串中限制只能出現一次。請設計一個城市,利用這兩組輸入的字串,組合另一個新的字串輸出。組合的法則為:新字串的前三個字元是從第一組輸入字串的前三個字元而來,後五個字原則是由第二組輸入字串從頭依序遞補上來的。遞補的條件為:遞補的字元必須跟第一組的前三個字元不同。

輸入範例:
ABCDEFGH  EHADBCGF
輸出範例:
ABCEHDGF

2010年2月1日 星期一

2010/02/01 授權碼檢查

Nanosoft資訊軟體公司研發出一套商用軟體,準備於市面上販售,但唯恐遭到未經授權之不合法使用,因此在安裝軟體時,需要使用者輸入授權馬。試寫一個程式,其功能可以檢核此授權碼的正確信。
【規則敘述】
此授權碼由十個位數合成,每一位數可以為0~9的任何一個數字,是判斷方法如下:
首先,將此碼逐次的累加,使的第二位數成為第一位數到第二位數的和,第三位數為第一位數到第三位數的和....第十位數為第一位數到第十位數的和;
進行完第一次的累加和後 ,接著再將所得到的十個數字,第十個數字減掉第一個數字,第九個數字減掉第二個數字....以此類推,得到五組數字,將此五組數字由小到大排列後成為一個新的數列。
此新數列的後三碼為識別碼,必須可為11整除,方為正確的授權碼,故在螢幕上列印出"此為合法之授權碼",反之則印出"此為不合法之授權碼",若授權碼格式錯誤則顯示"授權碼格式錯誤"。

輸入範例:
請輸入授權碼:9476282354
輸出範例:
此為合法之授權碼

【提示】
輸入授權碼為9476282354
第一次運算後得到數列  9  13  20  26  28  36  38  41  46  50
第二次運算後得到數列  41  33  21  12  8
排序後得到數列引  812213341      (341被11整除)

出自  程式設計隊訓練教材  No.42  授權碼檢查