程序設(shè)計大賽試題及答案_第1頁
程序設(shè)計大賽試題及答案_第2頁
程序設(shè)計大賽試題及答案_第3頁
程序設(shè)計大賽試題及答案_第4頁
程序設(shè)計大賽試題及答案_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、試題1、數(shù)學黑洞(程序文件名 maths.c/maths.cpp )【問題描述】任給一個 4位正整數(shù), 其各位數(shù)位上的數(shù)字不全相同, 將數(shù)字重新組合成一個最大的數(shù)與最 小的數(shù)相減,重復這個過程,最多 7步,必得 6174。對任給的 4位正整數(shù)(各位數(shù)位上的數(shù) 字不全相同),編程輸出掉進黑洞的步數(shù)?!据斎搿恳恍?,一個 4位正整數(shù) n( 1000< n<9999)【輸出】掉進黑洞的步數(shù)輸入1234輸出32、進制轉(zhuǎn)換(程序文件名 conver.c/conver.cpp )【問題描述】 任給一個十進制整數(shù) n, 及正整數(shù) m(m<=16且m10), 將n轉(zhuǎn)換成 m進制并輸出輸入】 一

2、行,兩個整數(shù) n,m(0 n 500000 ,2 m 16 ,且m10),中間用一個空格隔 開,其中 n 表示十進制數(shù)?!据敵觥哭D(zhuǎn)換后的數(shù)【輸入輸出樣例】輸入255 8輸出3773、分數(shù)線劃定(程序文件名 score.c/score.cpp )【問題描述】公務(wù)員選拔工作正在 A 市如火如荼的進行。 為了選拔優(yōu)秀人才, A 市對所有報名的選手進 行了筆試,筆試分數(shù)達到面試分數(shù)線的選手方可進入面試。面試分數(shù)線根據(jù)計劃錄取人數(shù) 的 150%劃定,即如果計劃錄取 m名公務(wù)員,則面試分數(shù)線為排名第 m*150%(向下取整)名的 選手的分數(shù),而最終進入面試的選手為筆試成績不低于面試分數(shù)線的所有選手?,F(xiàn)在就

3、請 你編寫程序劃定面試分數(shù)線,并輸出所有進入面試的選手的報名號和筆試成績。輸入】第一行,兩個整數(shù) n,m(5 n 5000 ,3 m n ),中間用一個空格隔開, 其中n 表 示報名參加筆試的選手總數(shù), m 表示計劃錄取的人數(shù)。輸入數(shù)據(jù)保證 m*150%向下取整后小 于等于 n。第二行到第 n+1 行,每行包括兩個整數(shù),中間用一個空格隔開, 分別是選手的報名號 k(1000 k 9999 )和該選手的筆試成績 s ( 1 s 100 )。數(shù)據(jù)保證選手的報名號各不相 同?!据敵觥康谝恍?,有兩個整數(shù),用一個空格隔開,第一個整數(shù)表示面試分數(shù)線;第二個整數(shù)為進入 面試的選手的實際人數(shù)。從第二行開始,每

4、行包含兩個整數(shù),中間用一個空格隔開,分別表示進入面試的選手的報 名號和筆試成績,按照筆試成績從高到低輸出,如果成績相同,則按報名號由小到大的順 序輸出?!据斎胼敵鰳永枯斎? 31000 903239 882390 95 7231 841005 95 1001 88輸出88 51005 952390 951000 901001 883239 88【樣例說明】m*150% = 3*150% = 4.5 ,向下取整后為 4。保證4 個人進入面試的分數(shù)線為 88,但因為 88 有重分,所以所有成績大于等于 88 的選手都可以進入面試,故最終有 5 個人進入面試。4、生日禮物( gift.c/gift

5、.cpp)【問題描述】小新今天過生日, 他媽媽帶他到一家購物中心, 他媽媽告訴他他今天可以在這家商店選購 3 件禮物,但這 3件禮物必須滿足條件:后面禮物的價格不得高于前面禮物的價格,如有5件商品價格分別是 12,11,8,9,10 ,則小新挑選禮物方案只能是( 12,11,8 )、( 12,11,9 )、 ( 12,11,10 )這三種方案中的一種,小新對挑選禮物的方案很感興趣,請編程計算挑選禮物的方案數(shù) 【輸入】第一行,一個整數(shù) n(n 1000),表示待選商品的總數(shù)。第二行 n個整數(shù),用空格隔開,分別 表示每件商品的價格 ( 每件商品的價格 10000)。【輸出】共一行,包含 1 個整數(shù)

6、,表示挑選禮物的方案數(shù)?!据斎胼敵鰳永枯斎?12 11 8 9 10輸出35、資金預算 (budget.c/budget.cpp)【問題描述】小新的親戚開了一家建材批發(fā)部, 近來由于價格不穩(wěn)定, 故需要制定按月執(zhí)行的倉儲計劃, 該批發(fā)部有 n個供貨月份,每個月倉儲預算、商品價格預算、客戶需求量分別為 Pi,Si,Di, 每月客戶需求必須得到保證。當然,也可以在價格適當時進行囤貨,即用倉庫所儲備的商 品供貨。若存貨不足,就要購買商品供貨,如某月要購貨,則該月要加上一筆購貨預算資金Ri 。例如,有 2個預算月份, P1,S1,D1,R1分別為 0,10,100,10 ; P2,S2,D2,R2

7、分別為 0,100,100,10 ;則方案 1:第一個月買夠 D1的貨,第二個月買夠 D2的貨,預算等于(D1×S1+R1)+(D2×S2+R2)=(100×10+10)+(100×100+10)=11020。方案 2:第一個月買夠 2個月的商品,第二個月不用買貨,可用囤積的商品供貨,但需要支 付第一個月的倉儲費,預算等于(D1+D2)×S1+R1)+(P1×D2)(100+100) ×10)+(0 ×100)2010。顯然方案 2優(yōu)于方案 1。人工進行這樣的預算費時費力,請你編程幫小新親戚安排預算從而 實現(xiàn)利潤的

8、最大化。【輸入】輸入文件第一行是整數(shù) n(1 n 20), 表示有n個月份;接著有 n行 ,每行 4個數(shù)據(jù),分 別表示 Pi,Si,Di,Ri, 即倉儲費用,商品價格預算,客戶需求量及購貨預算。其中 1 i n,0 Pi,Si,Ri 100000; , Di500?!据敵觥績H1行,數(shù)據(jù)是最小總預算。樣例1:【輸入1】0 10 100 100 100 100 10【輸出 1】2010樣例2:【輸入2】2100 10 100 100 100 100 10【輸出 2】110206、熱帶魚( fish.c/fish.cpp )【問題描述】一個晴朗的星期天,小新在商場看見美麗的熱帶魚,五彩斑斕的熱帶魚在

9、碧綠的水草映照 下格外絢麗奪目,大大小小的魚兒有的慢悠悠的散著步,有的疾馳如閃電,小新不禁被美 麗的魚兒所吸引,他非常想將這些美麗的小精靈們?nèi)I回家,但魚兒的種類太多了,所以 小新決定每種魚最多只買 1條,由于魚兒間會相互爭斗蠶食, 故有些魚兒是不能同時買回家 的,小新想買盡可能多的魚, 但他身上的錢有限, 只能在資金許可的范圍內(nèi)買魚, 怎么辦? 請你設(shè)計一個最佳方案,在資金許可的范圍選擇花費資金最多的一種買魚方案。程序運行 時間 10s內(nèi)輸入】 文件的第一行為兩個正整數(shù) m( m 1000)與 n(n30), 分別表示資金與魚的種類; 以下 行, 每行 2個正整數(shù),分別表示某種魚的編號(編號

10、 30)及價格(價格 10000);接著,每 行2個正整數(shù) p與q ,表示編號 p與編號 q的魚不能共處,當 p、q均等于0時,表示輸入文件結(jié) 束。【輸出】輸出文件為 2行,分別為 2個正整數(shù),第一行整數(shù)表示所買魚的條數(shù),第二行整數(shù)表示所花 費的資金。樣例1:【輸入1】15 31 302 393 181 30 0【輸出 1】樣例2:【輸入2】180 66 805 604 403 302 501 201 43 55 60 0【輸出 2】7、電腦游戲 (game.c/game.cpp)【問題描述】小新正在玩一個簡單的電腦游戲。游戲中有一條環(huán)形馬路,馬路上有 n 個機器人工廠,兩個相鄰機器人工廠之間

11、由一小段馬 路連接。小新以某個機器人工廠為起點, 按順時針順序依次將這 n 個機器人工廠編號為 1n, 因為馬路是環(huán)形的,所以第 n 個機器人工廠和第 1 個機器人工廠是由一段馬路連接在一起 的。小新將連接機器人工廠的這 n 段馬路也編號為 1n,并規(guī)定第 i 段馬路連接第 i 個機 器人工廠和第 i+1 個機器人工廠( 1 i n-1 ),第n 段馬路連接第 n 個機器人工廠和 第1個機器人工廠。游戲過程中,每個單位時間內(nèi),每段馬路上都會出現(xiàn)一些金幣,金幣的 數(shù)量會隨著時間發(fā)生變化, 即不同單位時間內(nèi)同一段馬路上出現(xiàn)的金幣數(shù)量可能是不同的。 小新需要機器人的幫助才能收集到馬路上的金幣。所需的

12、機器人必須在機器人工廠用一些 金幣來購買,機器人一旦被購買,便會沿著環(huán)形馬路按順時針方向一直行走,在每個單位 時間內(nèi)行走一次,即從當前所在的機器人工廠到達相鄰的下一個機器人工廠,并將經(jīng)過的 馬路上的所有金幣收集給小新,例如,小新在 i(1 i n )號機器人工廠購買了一個 機器人,這個機器人會從 i 號機器人工廠開始,順時針在馬路上行走,第一次行走會經(jīng)過 i 號馬路,到達 i+1 號機器人工廠(如果 i=n ,機器人會到達第 1 個機器人工廠),并將 i 號 馬路上的所有金幣收集給小新。游戲中,環(huán)形馬路上不能同時存在 2 個或者 2 個以上的機器人,并且每個機器人最多能夠 在環(huán)形馬路上行走 p

13、 次。小新購買機器人的同時,需要給這個機器人設(shè)定行走次數(shù),行走 次數(shù)可以為 1p 之間的任意整數(shù)。當馬路上的機器人行走完規(guī)定的次數(shù)之后會自動消失, 小新必須立刻在任意一個機器人工廠中購買一個新的機器人,并給新的機器人設(shè)定新的行 走次數(shù)以下是游戲的一些補充說明:1. 游戲從小新第一次購買機器人開始計時。2. 購買機器人和設(shè)定機器人的行走次數(shù)是瞬間完成的,不需要花費時間。3. 購買機器人和機器人行走是兩個獨立的過程, 機器人行走時不能購買機器人, 購買完機 器人并且設(shè)定機器人行走次數(shù)之后機器人才能行走。4. 在同一個機器人工廠購買機器人的花費是相同的, 但是在不同機器人工廠購買機器人的 花費不一定

14、相同。5. 購買機器人花費的金幣, 在游戲結(jié)束時再從小新收集的金幣中扣除, 所以在游戲過程中 小新不用擔心因金幣不足,無法購買機器人而導致游戲無法進行。也因為如此,游戲結(jié)束 后,收集的金幣數(shù)量可能為負?,F(xiàn)在已知每段馬路上每個單位時間內(nèi)出現(xiàn)的金幣數(shù)量和在每個機器人工廠購買機器人需要 的花費,請你告訴小新,經(jīng)過 m 個單位時間后,扣除購買機器人的花費,小新最多能收集 到多少金幣?!据斎搿康谝恍?3 個正整數(shù), n, m, p,意義如題目所述。接下來的 n 行,每行有 m 個正整數(shù),每兩個整數(shù)之間用一個空格隔開,其中第 i 行描述了 i 號馬路上每個單位時間內(nèi)出現(xiàn)的金幣數(shù)量( 1 金幣數(shù)量 100

15、),即第i 行的第j (1 j m)個數(shù)表示第 j 個單位時間內(nèi) i 號馬路上出現(xiàn)的金幣數(shù)量。最后一行,有 n 個整數(shù),每兩個整數(shù)之間用一個空格隔開,其中第 i 個數(shù)表示在 i 號機器 人工廠購買機器人需要花費的金幣數(shù)量( 1 金幣數(shù)量 100 )。輸出】 共一行,包含 1 個整數(shù),表示在 m 個單位時間內(nèi),扣除購買機器人花費的金幣之后,小新 最多能收集到多少金幣?!据斎霕永? 3 21 2 32 3 41 2【輸出樣例】5【數(shù)據(jù)范圍】對于 40%的數(shù)據(jù), 2 n 40 ,1 m 40 。對于 90%的數(shù)據(jù), 2 n 200,1 m 200 。對于 100%的數(shù)據(jù), 2 n 1000 ,1

16、m 1000 ,1 p m。7、電腦游戲 (game.c/game.cpp)【問題描述】 小新正在玩一個簡單的電腦游戲 游戲中有一條環(huán)形馬路,馬路上有 n 個機器人工廠,兩個相鄰機器人工廠之間由一小段馬 路連接。小新以某個機器人工廠為起點, 按順時針順序依次將這 n 個機器人工廠編號為 1n, 因為馬路是環(huán)形的,所以第 n 個機器人工廠和第 1 個機器人工廠是由一段馬路連接在一起 的。小新將連接機器人工廠的這 n 段馬路也編號為 1n,并規(guī)定第 i 段馬路連接第 i 個機 器人工廠和第 i+1 個機器人工廠( 1 i n-1 ),第n 段馬路連接第 n 個機器人工廠和 第1個機器人工廠。游戲過

17、程中,每個單位時間內(nèi),每段馬路上都會出現(xiàn)一些金幣,金幣的 數(shù)量會隨著時間發(fā)生變化, 即不同單位時間內(nèi)同一段馬路上出現(xiàn)的金幣數(shù)量可能是不同的。 小新需要機器人的幫助才能收集到馬路上的金幣。所需的機器人必須在機器人工廠用一些 金幣來購買,機器人一旦被購買,便會沿著環(huán)形馬路按順時針方向一直行走,在每個單位 時間內(nèi)行走一次,即從當前所在的機器人工廠到達相鄰的下一個機器人工廠,并將經(jīng)過的 馬路上的所有金幣收集給小新,例如,小新在 i(1 i n )號機器人工廠購買了一個 機器人,這個機器人會從 i 號機器人工廠開始,順時針在馬路上行走,第一次行走會經(jīng)過 i 號馬路,到達 i+1 號機器人工廠(如果 i=

18、n ,機器人會到達第 1 個機器人工廠),并將 i 號 馬路上的所有金幣收集給小新。游戲中,環(huán)形馬路上不能同時存在 2 個或者 2 個以上的機器人,并且每個機器人最多能夠 在環(huán)形馬路上行走 p 次。小新購買機器人的同時,需要給這個機器人設(shè)定行走次數(shù),行走 次數(shù)可以為 1p 之間的任意整數(shù)。當馬路上的機器人行走完規(guī)定的次數(shù)之后會自動消失, 小新必須立刻在任意一個機器人工廠中購買一個新的機器人,并給新的機器人設(shè)定新的行 走次數(shù)。以下是游戲的一些補充說明:1. 游戲從小新第一次購買機器人開始計時。2. 購買機器人和設(shè)定機器人的行走次數(shù)是瞬間完成的,不需要花費時間3. 購買機器人和機器人行走是兩個獨立

19、的過程, 機器人行走時不能購買機器人, 購買完機 器人并且設(shè)定機器人行走次數(shù)之后機器人才能行走。4. 在同一個機器人工廠購買機器人的花費是相同的, 但是在不同機器人工廠購買機器人的 花費不一定相同。5. 購買機器人花費的金幣, 在游戲結(jié)束時再從小新收集的金幣中扣除, 所以在游戲過程中 小新不用擔心因金幣不足,無法購買機器人而導致游戲無法進行。也因為如此,游戲結(jié)束 后,收集的金幣數(shù)量可能為負?,F(xiàn)在已知每段馬路上每個單位時間內(nèi)出現(xiàn)的金幣數(shù)量和在每個機器人工廠購買機器人需要 的花費,請你告訴小新,經(jīng)過 m 個單位時間后,扣除購買機器人的花費,小新最多能收集 到多少金幣。【輸入】第一行 3 個正整數(shù),

20、 n, m, p,意義如題目所述。接下來的 n 行,每行有 m 個正整數(shù),每兩個整數(shù)之間用一個空格隔開,其中第 i 行描述了 i 號馬路上每個單位時間內(nèi)出現(xiàn)的金幣數(shù)量( 1 金幣數(shù)量 100 ),即第i 行的第j (1 j m)個數(shù)表示第 j 個單位時間內(nèi) i 號馬路上出現(xiàn)的金幣數(shù)量。最后一行,有 n 個整數(shù),每兩個整數(shù)之間用一個空格隔開,其中第 i 個數(shù)表示在 i 號機器 人工廠購買機器人需要花費的金幣數(shù)量( 1 金幣數(shù)量 100 )?!据敵觥抗惨恍?,包含 1 個整數(shù),表示在 m 個單位時間內(nèi),扣除購買機器人花費的金幣之后,小新 最多能收集到多少金幣輸入樣例】2 3 21 2 32 3 41

21、 2【輸出樣例】5【數(shù)據(jù)范圍】對于 40%的數(shù)據(jù), 2 n 40 ,1 m 40 。對于 90%的數(shù)據(jù), 2 n 200,1 m 200 。對于 100%的數(shù)據(jù), 2 n 1000 ,1 m 1000 ,1 p m。 答案第一題include<stdio.h>int x=1;void main()int a;void fun(int a);printf(" 請輸入一個四位數(shù) :");scanf("%d",&a);fun(a);printf("%dn",x);void fun(int a) int i,j,m,n,s

22、4,t;s0=a/1000,s1=a/100%10,s2=a/10%10,s3=a%10;for(i=0;i<3;i+) for(j=i+1;j<4;j+)if(si<sj)t=si,si=sj,sj=t;m=1000*s0+100*s1+10*s2+s3;n=1000*s3+100*s2+10*s1+s0;if(m-n!=6174&&x<=7) x+, fun(m-n);第二題#include<stdio.h>void main()int m,n,k=0,i,j,a20;用空格分開: ");printf(" 請輸入十進制

23、數(shù)字及轉(zhuǎn)換進制scanf("%d %d",&m,&n);for(k;m/n!=0;k+)ak=m%n;m=m/n;ak=m;for(j=0;j<=k;j+) switch(aj)case 10: aj='a'case 11: aj='b'case 12: aj='c'case 13: aj='d'case 14 : aj='e'case 15 : aj='f'for(i=k;i>=0;i-)if(ai<97) printf("%d&qu

24、ot;,ai);else printf("%c",ai);printf("n");第三題#include<stdio.h>void main()int m,n,i,a5000,b5000,f,j,k,z,l,t1,t2,s,d,v,p,g;scanf("%d %d",&n,&m);for(i=0;i<n;i+)printf("Please enter the %d number and grade",i+1) ;scanf("%d %d",&ai,&bi);printf(&quo

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論