- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
99碩士入學程式會考考題
1.
Fibonacci 數列 f1, f2, … 之定義如下:
fn = fn(1 + fn(2, 當n (( 3;
初始條件 f1 = f2 = 1。
試以遞廻方式 (recursive call ) 撰寫一個程式,在標準輸入輸入整數 n,在標準輸出顯示fn。(5%)
接續前小題,加入整數變數 counter 用以累計加法的次數,並顯示於標準輸出。counter 若大於 1000,則跳出,並顯示訊息。(5%)
接續前小題,找出counter 不會大於 1000 的最大 n值。(2%)
建立一個陣列 fib[],用以存放Fibonacci 數列之值,以非遞廻方式重新撰寫(a)~(c) 的程式。(5+5+2%)
2.
試以標準輸入輸入整數x,並在標準輸出顯示
三角形,第一列為1個 “*”,第二列為2個 “*”,…,第x列為x個 “*”。 (6%)
例如,x = 3 的輸出為
*
**
***
菱形,第一列為1個 “1”,第二列為2個 “2”,…,第x列為x個 “x”, 第x+1列為x個 “x(1”,...,最後一列為1個 “1”。 (10%)
例如,x = 4 的輸出如下,其中,“(”代表空格
(((1
((2(2
(3(3(3
4(4(4(4
(3(3(3
((2(2
(((1
3.
題:(令m = 5, n = 2, 底線表示使用者由鍵盤輸入的部份)
桌上有5個石子
玩家A拿走個數:2
桌上有3個石子
玩家B拿走個數:-2
你只能拿走1~2個石子
玩家B拿走個數:5
你只能拿走1~2個石子
玩家B拿走個數:2
桌上有1個石子
玩家A拿走個數:2
你只能拿走1個石子
玩家A拿走個數:1
玩家A輸了,遊戲結束!
請特別注意範例中的兩個部份:
[a] 範例中每人能拿走的石子個數是1~2個,不在範圍內的數字都不接受。
[b] 由於桌上這時只剩1個石子,因此玩家最多只能拿走1個。也就是玩家所能拿走最大數目不能超過規定值以及桌上剩餘石數。
評分:請完成以下要求,依完成度分別計分 (各4分):
請將遊戲開始時桌上石子總數m,以及每人能拿走的最大石子個數n設計為常數,監考助教可當場修改。若你使用的程式語言沒有常數定義,可改以兩個變數代表之,需在程式開頭就定義。
能正確接收輸入數目並正確計算桌面剩餘石子個數。
界面能夠讓A、B兩玩家輪流輸入。
能正確檢查拿走石子數目的合法性。請注意桌上剩餘的石子個數。
程式能正常終止且正確判斷輸家。
4.
題:1071
最小值 -336
平均值 343.420000
中位數 332.500000
眾數 -42
[定義]
最大值:1000個數字中最大的數值。
最小值:1000個數字中最小的數值。
平均值:1000個數字的總和除以1000。
中位數:1000個數字依大小排序後,排在第500以及第501這兩個數的平均值。
眾 數:1000個數字中,出現最多次的那個數字。例如若 -42這個數字出現了12次,其他數字都出現不到12次,則眾數為 -42。注意:如果出現最多次的數字有兩個以上時,輸出其中一個即可。
評分:正確開啟任意檔案、正確找出最大值、最小值、平均值各得3分,正確找出中位數以及眾數各得4分。
寫作提示:
排序排序5.
Euclidean Algorithm and Extended Euclidean Algorithm
[10分]請撰寫一個程式計算兩個整數的最大公因數, 例如 gcd(735, 252) = 21
程式輸入兩個整數 735 及 252, 輸出為 21
gcd(735, 252) 之基本計算方法如下:
735 = 2 * 252 + 231 (以 735 除以 252, 商為 2, 餘數為 231)252 = 1 * 231 + 21 (將上式的除數 252 作為此式的被除數, 上式的餘數作為 此式的除數, 即以 252 除以 231, 商為 1, 餘數為 21)
231 = 11 * 21 + 0 (如此直到餘數為 0 時, 除數 21即為最大公因數)
以符號表示如下:
r0 = q0 r1 + r2
r1 = q1 r2 + r3
r2 = q2 r3 + r4
…
ri = qi ri+1 + ri+2 若 ri+2 = 0 則 gcd(r0, r1) = ri+1
(b) [10分]撰寫一個程式當 gcd(r0, r1) = ri+1 時求得整數 a, b 滿足 ri+1 = a r0 + b r1
例如 gcd(735, 252) = 21 時 21 = (-1) * 735 + 3 * 252, 亦即 a = -1, b = 3
程式輸入兩個整數 735 及 252, 輸出為 -1 及 3
此例之基本算法可以藉由計算最大公
文档评论(0)