2012年5月30日 星期三

學生成績的排名次

說明:請寫一個程式,老師可以輸入全班的「程式設計」成績,並依總分來排名次,學生人數不超過50人。
輸入格式:依學號輸入學科「程式設計」的成績1-50比。 學號與成績已1個空白隔開
輸出格式:輸入之資料排名表,依學號的順序輸出,同分者名次必須相同,第二行起為學生學號、成績與名次,各以七個空白隔開。
輸入範例:
1 56
2 88
3 44
4 44
5 22

輸出:
學號   程式設計   名次
1           56             2
2           88             1
3           44             3
4           44             3

2012年5月28日 星期一

奇摩知識


內容 : 
題目描述
         大家都知道二進制是由0和1兩種數字組成的,十進制轉二進制, 小明現在要玩一個遊戲, 就是由1數到n,每數到一個數, 這個數的二進制有多少個1, 小明就要站起多少次, 例如數到9, 由於其二進制為1001, 所以小明要站起來兩次, 為了知道自己能否應付這個遊戲, 請你為小明算出, 由1數到n他必須站起來多少次?
輸入說明 :
每一行有一個數字N (1≦N≦1,0000,0000)
輸出說明 :
請輸出小明總共要站起來的次數。請輸出mod 1000000000 之後的結果
範例輸入 :help
12
範例輸出 :
22
提示 :
※ 數學、遞迴

2012年5月21日 星期一

5/21程式小考


※請使用下載文件內之in.txt作答,否則不予給分。
http://192.168.1.130/

1.        輸入一數n,請輸出n數之後的下一個質數。
輸入範例:6 
               45
輸出範例:7
        47

2.        讀入兩數,並將兩數字間所有的數字各自拆開,並輸出最多者與其各數。
    (若個數相等,則輸出數字最大者)
輸入範例:10 12
輸出範例:1 4

3.        請找出n以下的完全數並輸出。
    完全數定義: 一個數的真因數和,除了本身以外的正因數和,剛好等於它本身, 則稱此數為完全數。
輸入範例:100
輸出範例: 6
               28
         

4.        輸入MN兩陣列,其中M為姓名N為成績,請按照成績高低排序並輸出。
(若發現成績相同,則照字母順序排列)
輸入一: Ezreal
             Ashe
             Leona
             Lux
輸入二: 80
                     20
                     75
                     89
  輸出範例:  
Lux 89
Ezreal 80
Leona 75
Ashe 20

5.        三顆公正的骰子,請輸出總和為n的所有組合。
輸入範例: 3
輸出範例: 1 1 1





解密

有一訊息如下"The final contest for getting right"
經放置於8*10的陣列中為
The*fina
l*contes
t*for*ge
tting*ri
ght*****
此列之後的資料皆為空白
加密後的資料為"Tlttgh**thecfit*oon*fnrg*it***negr*asei*"
寫一程式可以將加密過的訊息解密(訊息長度不超過80個字元)

2012年5月18日 星期五

Find the Telephone


內容 : 
有些地方會用對應的字母來代替數字使得電話號碼更好記。如此一來 MY LOVE 就代表 69 5683。這不是萬靈丹,因為有的電話號碼並不能構成一個字或片語,而且 1 和 0 沒有對應的字母。
請讀入一個字串並依據下表轉成電話號碼。字串由大寫字母 (A-Z)、連字號(-) 和數字 1 和 0 所組成。

字母數字
ABC2
DEF3
GHI4
JKL5
MNO6
PQRS7
TUV8
WXYZ9
輸入說明 :
輸入含有若干字串。每個字串單獨在一行,有 C 個字元,1 ≤ C ≤ 30 。輸入以 EOF 作為結束。
輸出說明 :
對於每個字串,請輸出相對應的電話號碼。
範例輸入 :help
1-HOME-SWEET-HOME 
MY-MISERABLE-JOB
範例輸出 :
1-4663-79338-4663 
69-647372253-562

2012年5月15日 星期二

年曆轉換

由"in.txt"讀取一正整數N,印出生肖及天干地支。(一甲子為60年)

輸入範例:

2000

輸出範例:

龍庚辰

2012年5月14日 星期一

最小距離

請設計一個程式,能在一個數列中,找出相鄰兩數的最小距離。例如,有一個數列為8,20,27,17,13,28,35,31,8與20的距離為12;20與27的距離為7,與前一個例子相比,其距離較小。

輸入說明:輸入之奇數列為下一行數列中的個數,偶數列為數列資料,代表一組測試資料。每個數字與數字間的區隔為一個空白符號,當奇數列為0時表示結束。(請參照輸入範例)
輸入範圍:每個數列最少有2個數字,最多不超過100個。每個數列中的數字皆大於0,小於1000,且不重覆。
輸入範例:in.txt
8
8 20 27 17 13 28 35 31
15
13 14 55 21 66 72 23 73 1 2 88 83 84 24 7
0

輸出說明:每組測試的數列皆要輸出最小距離。(請參照輸出範例)
輸出範例:out.txt
4
1

最大公約數

利用歐基里德輾轉相除法寫一個程式。輸入兩個正整數,輸出其最大公約數。輸入數值的大小限制於3到1000之間。

輸入說明:每一列由二個數字所組成,為一組測試資料。每個數字與數字間的區隔為一個空白符號,當為0 0時表示結束。(請參照輸入範例)
輸入範例:in.txt
78 64
26 39
0 0

輸出說明:對於每組測試資料,輸出最大公約數。(請參照輸出範例)
輸出範例:out.txt
2
13

2012年5月4日 星期五

借盤子

張三把所持有的1000個盤子分別裝在10個箱子裡,每個箱子分別裝進1、2、4、8、16、32、64、128、256、及489個盤子。張三將這些箱子依序標上1~10的號碼。有天,李四想找張三借N個盤子,張三知道每個箱子的編號與箱子內所放盤子的個數,但如何設計一個程式,在不拆開箱子重新組合盤子的情況下,告訴張三應拿出那些箱子給李四,才能得到李四要借的盤子數目呢?
輸入說明:每列中的數字代表要借的盤子數,當為0時表示結束。(請參照輸入範例)
輸入範圍:每列中的數字皆大於0,小於等於1000。
輸入範例:in.txt
717
329
0
第 3 頁/共 5 頁
輸出說明:每個數字代表箱子的編號,每個數字與數字間的區隔為一個空白符號,請由大到小排列。(請參照輸出範例)
輸出範例:out.txt
10 8 7 6 3
9 7 4 1

數數愛明明

內容 :
數數是班上聰明又漂亮的女生,有一天……,她愛上了明明。
她對明明說:「我們的愛,若是錯誤,願你我沒有白白受苦。呃,不是,我們的愛就像是函數!」
明明說,「是啊,我對妳的愛是與日俱增呢!」
數數開心地說,「你的意思是,你在第 n 天對我的愛若用函數 f(n) 來描述,那麼,f(n) = n + f(n-1)。也就是說,每一天都比前一天多了一單位的愛,並且與舊的愛累積起來嗎?」
明明點了點頭,然後問,「那麼,妳呢?」
數數說,「我在第 n 天對你的愛若是 g(n),那 g(n) = f(n) + g(n-1)!」
於是,明明笑了笑,摟著數數說,我一定會更加愛妳的!
註:在第一天的時候,f(1) = g(1) = 1。 

輸入說明 :
輸入以 EOF 結束。每一筆測試資料有一個數字 n,其中 n > 0。 
此外,50% 的測資 n <= 500;80% 的測資,n <= 3000;全部的測資 n <= 30000。 

輸出說明 :
輸出 f(n) 與 g(n)。
範例輸入 :
1
2
3
5
8
13

範例輸出 :
1 1
3 4
6 10
15 35
36 120
91 455