程式設計假期練習題--3

iamzxf發表於2014-01-17

    1.漁夫捕魚問題。ABCDE五個漁夫夜間合夥捕魚,凌晨時都疲倦不堪,各自在河邊的樹叢中找地方睡著了。待日上三竿,漁夫A第一個醒來,他把魚分作5份,把多餘的一條扔回河裡,拿自己的一份回家了。漁夫B第二個醒來,也把魚分為5份,把多餘的一條扔回河裡,拿走了自己的一份回家了,接著C、D、E依次醒來,也都按同樣的方法分魚。問五個漁夫至少合夥捕了多少魚,請程式設計計算。

    2.尋找假幣。一個國王要賞賜給一個大臣30枚金幣,但其中一枚是假幣。國王提出要求:只能用一個天平作為測量工具,並用儘快少的比較次數找出這枚假幣,那麼餘下的29枚金幣就賞賜給這個大臣;否則這個大臣將得不到賞賜。已知假幣比真幣要輕一些。聰明的大臣思考片刻,很快用天平找出了這枚假幣,於是得到了29枚金幣。你知道這位大臣是如何找到假幣的麼?請編寫一個程式模擬找假幣的過程,注意用盡量少的比較次數找到這枚假幣。

    3.計算組合數。編寫一個程式,計算組合數C(m,n)。

    4.遞迴法求冪。編寫程式,用遞迴演算法計算m^n。

    5.河內塔。一塊板上有3根針:A、B和C。A針上套有64個大小不等的圓盤,大的在下,小的在上,要把這64個盤子從A針移動到C針,每次只能移動一個盤子,移動可以藉助B針進行。但在任何時間,任何針上的圓盤都必須保持大盤在下,小盤在上,求移動的步驟。

    6.選美比賽。在選美比賽的現場,有一批選手參加比賽,比賽的規則是最後得分越高,名次越低。當比賽結束時,要在現場按照選手的出場順序宣佈最後得分和最後名次,獲得相同分數的和具有相同的名次,名次連續編號,不考慮同名次的選手人數。例如,

        選手編號:1、2、3、4、5、6、7

        選手得分:5、3、4、7、3、5、6

        輸出名次:3、1、2、5、1、3、4

請程式設計幫助大賽組委會完成比賽的評分和排名工作。

    7.順序表的就地逆置。編寫函式,實現順序表的就在逆置,也就是說利用原表的儲存空間將順序表(a1,a2,…,an)逆置為(an,…,a2,a1)。

    8.動態數列排序。編寫一個C程式,實現這樣的功能:從鍵盤輸入任意個數,以0作為結束標誌,對這個整數序列從小到大排序,並輸出排序後的結果。

    9.有兩個按元素值遞增有序排列的連結串列L1和L2,編寫一個程式,將二者歸併成一個按元素遞增有序的連結串列L3。要求:(1)連結串列中允許有相同元素,只要三個連結串列單調不減即可;(2)要利用原表空間(L1、L2)的結點空間構造表L3。

    10.約瑟夫環。編號為1、2、3…、n的n個人按順時針方向圍成一圈,每個人手裡持有一個密碼。開始時任選一個正整數作為報數的上限m,從第一個人開始按順時針方向自1開始順序報數,報到m停止,報m的人出列,將它手裡的密碼作為新的報數上限m,從他在順時針方向上的下一個人開始從1報數,求最後剩下的那個人的最初編號是多少。

相關文章