2012年1月22日 星期日

計算位元為1 的個數

計算機概論是一門令人又愛又恨的科目,它的內容可謂包羅萬象。遇到考試時,事前需
要花很多時間準備,才能拿到高分。在學習的內容中,有個章節是數字系統轉換,內容是將
一個十進位的數字,轉換成二進位的數字。現在請你設計一個程式,計算由十進位數字轉換
的二進位數字中,位元等於1 的個數。

輸入說明:
第一行的數字,代表有幾個十進位的數字。第二行開始的每一行,為一個十進位數字,
其範圍為[0, 2147483647]的整數。

輸出說明:
對輸入的十進位數字,以一行分別輸出轉換成二位進數字中,位元等於1 的個數。

輸入範例:
2
1027
65535

輸出範例:
3
16

音源線

這是一種"1公2母"的音源線,就是有一個輸入端兩個輸出端的線。
如今,有人想要在畢旅同時使多台音響播放,請問他需要幾條音源線才夠 ?


輸入說明:
只有一行,代表有n台音響 , 0<n<32768


輸入範例:
1024
輸出範例:
1023

2012年1月21日 星期六

Oh! My Zero!!

內容
階層運算是很令人頭疼的,因此我们要想方設法地把它簡化。
輸入說明 :
输入檔可能有大量的數據。
每一个输入檔输入一个不算很大的數 n (请用 long)。
輸出說明 :
輸出 n!的末尾零的個數。
範例輸入 :
1 
2 
10
範例輸出 :
0 
0 
2
提示 :
1!=1 末尾有0個零;
2!=2 末尾有0個零;
10!=3628800 末尾有2個零。

2012年1月20日 星期五

方塊積木

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

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

2012年1月19日 星期四

因數

已知兩個整數nd,請你找出n這個值,會有多少個因數可以被d整除。

輸入說明:

每組輸入包含兩個以空白隔開的數字nd,其n ( 0 < n < 1000000 ),而d ( 2 ≤ d < 1000 )

輸出說明:

對於每組測試資料,輸出n這個值,會有多少個因數可以被d整除。

輸入範例:

36 2

64 8

輸出範例:

6

4

2012年1月17日 星期二

摺紙

一張紙0.5cm厚


對折

1次為1cm厚
2次為2cm厚
3次為4cm厚

地球至太陽距離為1億五千萬公里
試問要折幾次才能到達。

2012年1月16日 星期一

化成二進位

數字(0~127)

n → 化成二進位 →加上偶同位→換算值

輸入→化成二進位→加上偶同位→換算成十進位→輸出

3 → (0000011) 2 → (00000110) 2 → 6

100 → (1100100) 2 → (11001001) 2 → 201

2012年1月4日 星期三

求餘數

求餘數對於會寫程式的人來說,是個簡單的問題,例如用VB 來求餘數時,可以用mod這個關鍵字來實作。但如果算式為R = B^P mod M 的型態,給B、P、及M,要算出餘數R,當B 或P 很大時,那就變得不簡單了。現在,請你設計一個程式,來解決上述這個不簡單的問題。

輸入說明:

第一行的數字,表示有幾個問題要求解,第二行開始的每一行,為一個獨立的問題。每一行包含三個數字,分別為B、P、及M,例如:10 2009 9 代表B=10、P=2009、M=9。所有數字均為正整數,其範圍屬於[1,100000]。

輸出說明:

對輸入的每個問題分別以一行輸出餘數R。

輸入範例:

2

10 2009 9

2 99 5

輸出範例:
1
3

2012年1月2日 星期一

一堆石頭

內容 :

可愛的潘潘有著一堆石頭,每顆石頭上面都有一個正整數編號。接著,她又利用複製機器把每顆石頭都複製了兩個,而編號當然跟原來那個一樣。

可是有一天,她不小心掉了一顆石頭,現在她想要找出她掉的那一顆石頭的編號。

輸入說明 :
只有一筆測資給你她現在所擁有的石頭的編號,用空格分開。

當然,個數一定是三的倍數減一個。

輸出說明 :
輸出她掉的那一顆石頭的編號。


範例輸入 :

9 8 6 9 8 2 3 5 2 1 6 8 1 5 1 2 3 3 5 9
範例輸出 :

6

1000 到 9999 不重複的數

從 1000 到 9999 中找出數字不能重複的數,並將符合條件者全部印出。


例如: 1234

取代字串

讀入任意長度字串(最多50字元),對此字串坐下列處理動作:
(1) 列印出字串長度(使用者輸入的部分)。
(2) 以一個"4*號"字串取代每一個4字母單字,
(3) 以一個"3+號"字串取代每一個3字母單字,
(4) 以一個"5?號"字串取代每一個5字母單字,
並列印新字串。

輸入範例:

Enernet 5-4-3原則

輸出範例:
(1):15
(2):Enernet 5-4*號-3原則
(3):Enernet 5-4-3+號原則
(4): Enernet 5?號-4-3原則

2012年1月1日 星期日

字串重組

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

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

參照 http://chscvb.blogspot.com/2010/02/20100202.html

授權碼檢查

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

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

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


參照: http://chscvb.blogspot.com/2010/02/20100201.html