2012年11月5日 星期一

求餘數

求餘數對於會寫程式的人來說,是個簡單的問題,例如用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

摺紙


一張紙0.5cm厚


對折

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

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

因數


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

輸入說明:

每組輸入包含兩個以空白隔開的數字n及d,其n ( 0 < n < 1000000 ),而d ( 2 ≤ d < 1000 )。
輸出說明:
對於每組測試資料,輸出n這個值,會有多少個因數可以被d整除。
輸入範例:
36 2
64 8
輸出範例:
6
4

方塊積木

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

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

Oh! My Zero!!


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

音源線

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


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


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

計算位元為1 的個數

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

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

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

輸入範例:
2
1027
65535

輸出範例:
3
16