ACM程序設(shè)計(jì)與競(jìng)賽作業(yè)要點(diǎn)_第1頁(yè)
ACM程序設(shè)計(jì)與競(jìng)賽作業(yè)要點(diǎn)_第2頁(yè)
ACM程序設(shè)計(jì)與競(jìng)賽作業(yè)要點(diǎn)_第3頁(yè)
ACM程序設(shè)計(jì)與競(jìng)賽作業(yè)要點(diǎn)_第4頁(yè)
ACM程序設(shè)計(jì)與競(jìng)賽作業(yè)要點(diǎn)_第5頁(yè)
已閱讀5頁(yè),還剩33頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

程序設(shè)計(jì)與競(jìng)賽作業(yè)

1.采藥

2.金字塔問(wèn)題

3.毛毛蟲(chóng)問(wèn)題

4.

5.字符串正反連接

6.去掉空格

7.成績(jī)轉(zhuǎn)換

8.金塊問(wèn)題

9.工資問(wèn)題

10.“水仙花數(shù)”問(wèn)題

11.大小寫(xiě)轉(zhuǎn)換

12.取數(shù)游戲

13.整除問(wèn)題

14.警察抓小偷

15!

16.漢諾塔問(wèn)題

17.猴子吃桃問(wèn)題(遞歸)

18.(I)

19.()

20.()

21.0

22,埃及分?jǐn)?shù)

23.完數(shù)

24.2070

25.

26.不要622089

1問(wèn)題B:采藥

時(shí)間限制:1內(nèi)存限制:128

提交:87解決:72

[提交][狀態(tài)][討論版]

題目描述

辰辰是個(gè)很有潛能、天資聰穎的孩子,他的夢(mèng)想是成為世界上最偉大的醫(yī)師。為此,他想拜附近

最有威望的醫(yī)師為師。醫(yī)師為了判斷他的資質(zhì),給他出了一個(gè)難題。醫(yī)師把他帶到個(gè)到處都是草

藥的山洞里對(duì)他說(shuō):“孩子,這個(gè)山洞里有一些不同的草藥,采每一株都需要一些時(shí)間,每一株

也有它自身的價(jià)值。我會(huì)給你一段時(shí)間,在這段時(shí)間里,你可以采到一些草藥。如果你是一個(gè)聰

明的孩子,你應(yīng)該可以讓采到的草藥的總價(jià)值最大?!?/p>

如果你是辰辰,你能完成這個(gè)任務(wù)嗎?

輸入

輸入的第一行有兩個(gè)整數(shù)T(1<T<1000)和M(1<M<100),T代表總共能夠用來(lái)采藥的時(shí)

間,M代表山洞里的草藥的數(shù)目。接下來(lái)的M行每行包括兩個(gè)在1到100之間(包括1和100)

的整數(shù),分別表示采摘某株草藥的時(shí)間和這株草藥的價(jià)值。

輸出

輸出只包括一行,這一行只包含一個(gè)整數(shù),表示在規(guī)定的時(shí)間內(nèi),可以采到的草藥的最大總價(jià)值。

樣例輸入

703

71100

691

12

樣例輸出

3

0

a(102][1002]={0};

1111;

("");

(""11);

(il=ll<l)處理第一行

{

(il>l)

a[k][il]l;

(2<)

{(""ID;

(

(il<tl)不可能采的情況;

a[k][il][l][il];

可以采的情況

(

a[k][il][l][il];采完總價(jià)值下降

值得采的情況;

)

)

,>

}

(""[m][t]);

)

心得:這是一個(gè)動(dòng)態(tài)規(guī)劃的題目,首先定義一個(gè)二維數(shù)組,根據(jù)草藥的性價(jià)比,優(yōu)先采取較

高的草藥,如果時(shí)間不夠,則降低性價(jià)比繼續(xù)采取草藥,直至?xí)r間結(jié)束,根據(jù)采集的草藥計(jì)

算它的最大值,這題通過(guò)比較算出可能采的情況,和不能采的情況,如果能采,那再判斷值

不值得采,得出最優(yōu)解。

2問(wèn)題A:金字塔問(wèn)題

時(shí)間限制:1內(nèi)存限制:128

提交:54解決:32

[提交][狀態(tài)][討論版]

題目描述

給一個(gè)金字塔,如上圖所示,請(qǐng)你求出一個(gè)從塔頂?shù)剿椎穆窂?,要求路徑?jīng)過(guò)的點(diǎn)的數(shù)字和最

小。

例如上圖所示的金字塔的最小路徑為:40

輸入

輸入第一行是一個(gè)整數(shù)n<1000;

接下來(lái)是n行,

第一行一個(gè)數(shù);

第二行兩個(gè)數(shù);

OOO

第n行n個(gè)數(shù);

數(shù)之間用空格分開(kāi)。

數(shù)的鏈接方式如圖所示。

輸出

一個(gè)數(shù),就是從塔頂?shù)剿椎穆窂降淖钚【嚯xO

樣例輸入

5

9

1215

1068

31895

19710416

樣例輸出

40

<>

0

(

a[100][100];定義一個(gè)二維數(shù)組;

("");

(1<)

(1<)

(

(""[ilUD;

)

(1>=D

(1<)從最后一行開(kāi)始處理;

(

(a[l][j]>a[l][l])

a[i]U][i]U][l][l];

a[i][j][i]Ul[l]U];求得每次路徑最小值;

心得:這個(gè)題目主要運(yùn)用了動(dòng)態(tài)規(guī)劃的思想,定義一個(gè)二維數(shù)組,把所輸入的數(shù)據(jù)存入進(jìn)

去,然后從它的第一行處理,比較相鄰位置數(shù)的大小,取最小的路徑和上一行對(duì)應(yīng)的數(shù)相加,

取得最小路徑,進(jìn)行循環(huán),直到求出數(shù)組中即所求的結(jié)果。

3問(wèn)題B:毛毛蟲(chóng)問(wèn)題

時(shí)間限制:1內(nèi)存限制:128

提交:32解決:16

[提交][狀態(tài)][討論版]

題目描述

在她家門(mén)口水平種了一排蘋(píng)果樹(shù),共有N棵。

突然發(fā)現(xiàn)在左起第P棵樹(shù)上(從1開(kāi)始計(jì)數(shù))有一條毛毛蟲(chóng)。為了看到毛毛蟲(chóng)變蝴蝶的過(guò)程,在蘋(píng)

果樹(shù)旁觀察了很久。雖然沒(méi)有看到蝴蝶,但發(fā)現(xiàn)了一個(gè)規(guī)律:每過(guò)1分鐘,毛毛蟲(chóng)會(huì)隨機(jī)從一

棵樹(shù)爬到相鄰的一棵樹(shù)上。

比如剛開(kāi)始毛毛蟲(chóng)在第2棵樹(shù)上,過(guò)1分鐘后,毛毛蟲(chóng)可能會(huì)在第1棵樹(shù)上或者第3棵樹(shù)上。

如果剛開(kāi)始時(shí)毛毛蟲(chóng)在第1棵樹(shù)上,過(guò)1分鐘以后,毛毛蟲(chóng)一定會(huì)在第2棵樹(shù)上。

現(xiàn)在告訴你蘋(píng)果樹(shù)的數(shù)目N,以及毛毛剛開(kāi)始所在的位置P,請(qǐng)問(wèn),在M分鐘后,毛毛蟲(chóng)到達(dá)

第T棵樹(shù),一共有多少種行走方案數(shù)。

輸入

輸入四個(gè)整數(shù)NPMT。

輸出

輸出一個(gè)整數(shù),就是行走的方案數(shù)。

樣例輸入

7444

樣例輸出

6

<>

0

a[100][100]={0}定義一個(gè)二維數(shù)組;

a[O][p]=1;毛毛蟲(chóng)剛開(kāi)始在數(shù)組中的位置;

(1<)

(

(1<)

(

aMjHUUWHl]每一步的方案數(shù);

I

)

("\nTm][t])分鐘后到T棵樹(shù)行走的方案數(shù);

)

心得:這一題運(yùn)用了動(dòng)態(tài)規(guī)劃的思想,毛毛蟲(chóng)的每一步都會(huì)影響下一步的結(jié)果,所以首先按

照普通情況找出規(guī)律及其其公式,進(jìn)而算出方案數(shù)。首先定義一個(gè)二維數(shù)組,初始化毛毛蟲(chóng)

的起始位置,然后通過(guò)兩個(gè)循環(huán),求出毛毛蟲(chóng)走每一步的方案數(shù),存在二維數(shù)組中,然后求

出第M分鐘到T棵樹(shù)行走的方案數(shù)。

4問(wèn)題A:

時(shí)間限制:1內(nèi)存限制:128

提交:61解決:23

[提交][狀態(tài)][討論版]

題目描述

p1,p2p3,'s(p1,p2,p3),1,...p1,p2p3.

,H(2,3,5)=2,3,4,5,6,8,9,10,12,15,16,18,20,24,25,27,...

H5(2,3,5)=6.

輸入

p1p2p3i.

輸出

-(p1,p2,p3).10A18.

樣例輸入

2355

樣例輸出

(plp2p3)定義有參函數(shù);

(

1;

(p2<)

2;

(p3<)

3;

}求pl23的最小值;

0

(

P123;

[10000];

(""123);

0;

[0]=1;

(1<)

{[i](pl*[a]2*[b]3*[c])調(diào)用函數(shù);

([i]l*[a])

([i]2*[b])

([i]3*[c])

1求所有的能被pl23整除的數(shù):

0;

心得:運(yùn)用動(dòng)態(tài)規(guī)劃的思想,定義一個(gè)一維數(shù)組,把所有符合條件的數(shù)按順序存進(jìn)一維數(shù)組

中,這個(gè)編程運(yùn)用了函數(shù)調(diào)用的方法求三個(gè)數(shù)的最小值,然后把這個(gè)最小值存進(jìn)一維數(shù)組中,

每次存進(jìn)一個(gè)數(shù),下次都會(huì)用存進(jìn)去的這個(gè)數(shù)求解下一個(gè)數(shù),進(jìn)行循環(huán)。

5問(wèn)題B:字符串正反連接

時(shí)間限制:1內(nèi)存限制:128

提交:68解決:42

[提交][狀態(tài)][討論版]

題目描述

所給字符串正序和反序連接,形成新串并輸出

輸入

任意字符串(長(zhǎng)度<=50)

輸出

字符串正序和反序連接所成的新字符串

樣例輸入

123

樣例輸出

123321

<>

<>

0

(

a[50]定義一個(gè)字符串;

((""))實(shí)現(xiàn)多行實(shí)例輸入;

(

(a)把字符串的長(zhǎng)度值賦給f;

(0<)

(

把字符串正序輸出;

)

(1>=0)

(""[i])把字符串反序輸出;

}

)

心得:定義一個(gè)字符串,運(yùn)用。函數(shù)獲取字符串的長(zhǎng)度值f.首先用循環(huán),把這個(gè)字符串正

序輸出,然后再用循環(huán)對(duì)這個(gè)字符串進(jìn)行反序輸出,這里主要考察了輸入輸出。

6問(wèn)題C:去掉空格

時(shí)間限制:1內(nèi)存限制:128

提交:27解決:4

[提交][狀態(tài)][討論版]

題目描述

讀入一些字符串,將其中的空格去掉。

輸入

輸入為多行,每行為一個(gè)字符串,字符串只由字母、數(shù)字和空格組成,長(zhǎng)度不超

過(guò)80。輸入以“”結(jié)束。

輸出

對(duì)于每行輸入,輸出轉(zhuǎn)換后的字符串。

樣例輸入

123

樣例輸出

123

提示

用是不能讀入一行有空格的字符串的,用吧。用“()”可以判斷輸入是否結(jié)束,如果此條件為

假(即0),則表示輸入結(jié)束(對(duì)于本題)。

<>

<>

0

a[90]定義一個(gè)字符串;

((a))

(

(a)把字符串的長(zhǎng)度值賺給f;

(0<)

{

(a[i]'')

(

(""[1])去掉空格;

1;

("”口])沒(méi)有空格,直接輸出;

)

("\n");

)

)

心得:這里也是主要考察輸入輸出問(wèn)題,首先也是定義了一個(gè)字符串,用0函數(shù)獲得字符串

的長(zhǎng)度f(wàn),進(jìn)行f次循環(huán),判斷這個(gè)字符串是否有空格?如果有把數(shù)組中的每個(gè)數(shù)往后進(jìn)一

位,即去點(diǎn)空格,如果沒(méi)有直接輸出。

7問(wèn)題D:成績(jī)轉(zhuǎn)換

時(shí)間限制:1內(nèi)存限制:128

提交:78解決:30

[提交][狀態(tài)][討論版]

題目描述

輸入一個(gè)百分制的成績(jī)t,將其轉(zhuǎn)換成對(duì)應(yīng)的等級(jí),具體轉(zhuǎn)換規(guī)則如下:

90~100為A;

80-89為B;

70-79為C;

60-69為D;

0~59為E;

輸入

輸入數(shù)據(jù)有多組,每組占一行,由一個(gè)整數(shù)組成。

輸出

對(duì)于每組輸入數(shù)據(jù),輸出一行。如果輸入數(shù)據(jù)不在0~100范圍內(nèi),請(qǐng)輸出一行:

“!,,

樣例輸入

56

67

100

123

樣例輸出

E

D

A

提示

<>

0

X;

((""))實(shí)現(xiàn)多行實(shí)例輸入;

{

(x<60)

("E\n");

(x<70)

("D\n");

(x<80)

("C\n");

(x<90)

("B\n");

(x<=100)

("A\n");

("!\n");

}分?jǐn)?shù)轉(zhuǎn)換為等級(jí);

0;

)

心得:這里主要運(yùn)用了選擇語(yǔ)句,用((""))語(yǔ)句實(shí)現(xiàn)多行實(shí)例輸入,然后把所輸入的分?jǐn)?shù)通

過(guò)語(yǔ)句進(jìn)行判斷,轉(zhuǎn)換成相應(yīng)的等級(jí),輸出。

8問(wèn)題A:金塊問(wèn)題

時(shí)間限制:1內(nèi)存限制:128

提交:92解決:71

[提交][狀態(tài)][討論版]

題目描述

老板有一袋金塊(共n塊,n是2的幕(n>=2)),最優(yōu)秀的雇員得到其中最重的一塊,最差的雇員

得到其中最輕的一塊。假設(shè)有一臺(tái)比較重量的儀器,希望用最少的比較次數(shù)找出最重和最輕的金

塊。

輸入

輸入共兩行,

第一行輸入金塊的數(shù)量N<100000;

第二行N金塊的重量,用空格間隔。

輸出

兩個(gè)數(shù)用空格分開(kāi),最重金塊最輕金塊

樣例輸入

5

37964

樣例輸出

93

<>

0

(

[100000];

((”"))實(shí)現(xiàn)多行實(shí)例輸入;

(

(0<)

C'"[i]);

|0]把數(shù)組a[0]的值賦給和;

(1<)

(

(a[i]>)

['J;

}求最最重的金塊;

(1<)

(a[i]<)

[i];

}求最輕的金塊;

("\n");

)

0;

)

心得:這題主要運(yùn)用分治算法的思想,把一個(gè)大問(wèn)題分成一個(gè)個(gè)小的子問(wèn)題去求解,這個(gè)題

目是典型的二分法問(wèn)題,把這個(gè)題分成兩個(gè)小問(wèn)題,即求最重的和求最輕的金塊,首先定義

了一個(gè)一維數(shù)組,把所有金塊的質(zhì)量存入其中,把數(shù)組的初始值賦給最重的和最輕的金塊,

然后運(yùn)用循環(huán)對(duì)數(shù)組中每個(gè)金塊的質(zhì)量與金塊的初始值進(jìn)行比較,求的最重和最輕的金塊,

然后輸出。

9問(wèn)題B:工資問(wèn)題

時(shí)間限制:1內(nèi)存限制:128

提交:121解決:74

[提交][狀態(tài)][討論版]

題目描述

某單位給每個(gè)職工發(fā)工資(精確到元),為了保證不要臨時(shí)兌換零錢(qián),且取款的張數(shù)最少,取工

資前要統(tǒng)計(jì)出所有職工的工資所需各種幣值(100,50,20,10,5,2,1元共7種)的張數(shù),

請(qǐng)編程完成。

輸入

輸入一個(gè)工資數(shù)<10000元

輸出

輸出各個(gè)幣種的張數(shù),沒(méi)有的用0代替,中間用空格分開(kāi)

樣例輸入

173

樣例輸出

1110011

<>

0

“7]={100,50,20,10,5,2,1}把所有幣值按從從大到小的順序存到一位數(shù)組中;

s[7]={0}定義一個(gè)一位數(shù)組,元素值全為0;

"");

(0<7)

U1;

s[jl;

*町;

}求需要各個(gè)幣值的個(gè)數(shù);

(""[0]);

(1<7)

(""5)輸出需要各個(gè)幣值的個(gè)數(shù);

0;

)

心得:這個(gè)題主要運(yùn)用貪婪算法的方法,利用可行的策略,求出可行解的一個(gè)解元素

由所有解元素合成問(wèn)題的一個(gè)可行解。要想取得的張數(shù)最少,可以先考慮幣值最大的進(jìn)行分

發(fā),然后再取更小鈔票的幣值。依次取之。首先定義一個(gè)一維數(shù)組,把幣值從大到小存進(jìn)去,

運(yùn)用一循環(huán),把每次算的錢(qián)數(shù)的結(jié)果,依次對(duì)數(shù)組的幣值進(jìn)行取整。然后依次存入數(shù)組輸出。

10問(wèn)題C:“水仙花數(shù)”問(wèn)題1

時(shí)間限制:1內(nèi)存限制:128

提交:138解決:75

[提交][狀態(tài)][討論版]

題目描述

判斷一個(gè)數(shù)是否為“水仙花數(shù)",所謂"水仙花數(shù)”是指這樣的一人數(shù):其各位數(shù)字

的立方和等于該數(shù)本身。例如:371是一個(gè)"水仙花數(shù)",371=3A3+7A3+1A3.

輸入

一個(gè)三位數(shù)

輸出

1或者0(1代表此數(shù)為水仙花數(shù),0代表此數(shù)不是水仙花數(shù))

樣例輸入

371

樣例輸出

1

<>

0

100求三位數(shù)的百位數(shù)字;

10求三位數(shù)的個(gè)位數(shù)字;

((x*100))/10求三位數(shù)的十位數(shù)字;

(*X**y**z*Z)

("”,0)判斷這個(gè)三位數(shù)是否為水仙花數(shù),是輸出1,否輸出2;

)

心得:首先,輸入一個(gè)三位數(shù),運(yùn)用對(duì)這個(gè)數(shù)取整,取余,運(yùn)用數(shù)學(xué)公式,分別算出它的百

位,十位,和個(gè)位的數(shù)字,然后判斷這三個(gè)數(shù)字的平方和是否等于這個(gè)三位數(shù),如果是,輸

出1,如果不是輸出0.

11問(wèn)題E:大小寫(xiě)轉(zhuǎn)換

時(shí)間限制:1000內(nèi)存限制:65536

提交:182解決:116

[提交][狀態(tài)][討論版]

題目描述

讀入一些字符串,將其中的小寫(xiě)字母轉(zhuǎn)成大寫(xiě)字母(其他字符不變)。

輸入

輸入為多行,每行為一個(gè)字符串,字符串只由字母和數(shù)字組成,長(zhǎng)度不超過(guò)80。

輸入以“”結(jié)束。

輸出

對(duì)于每行輸入,輸出轉(zhuǎn)換后的字符串。

樣例輸入

2004

12345

樣例輸出

2004

12345

<>

<>

0

(

j;

[80]定義一個(gè)字符串;

((""))實(shí)現(xiàn)多行實(shí)例輸入;

{

(0<80)

(

(([j]>=,a,)(U]<='z'))

U1UI-32;

)實(shí)現(xiàn)字母大小寫(xiě)轉(zhuǎn)換;

心得:這個(gè)題目主要考察輸入輸出,還有大小寫(xiě)轉(zhuǎn)換問(wèn)題,首先還是定義一個(gè)字符串,用((”"))

語(yǔ)句實(shí)現(xiàn)多行實(shí)例輸入,對(duì)這個(gè)字符串進(jìn)行循環(huán),如果這個(gè)字符串有大寫(xiě)的話,轉(zhuǎn)化成小寫(xiě)

的,如果有小寫(xiě)的話,那么轉(zhuǎn)化成大寫(xiě)的。

12問(wèn)題B:取數(shù)游戲

時(shí)間限制:1內(nèi)存限制:128

提交:46解決:39

[提交][狀態(tài)][討論版]

題目描述

有2個(gè)人輪流取2n個(gè)數(shù)中的n個(gè)數(shù),所取數(shù)之和大者為勝,請(qǐng)

編寫(xiě)算法,讓先取數(shù)者勝,模擬取數(shù)過(guò)程。

輸入

輸入兩行,第一行一個(gè)整數(shù)N<100000;

第二行N個(gè)數(shù),用空格分開(kāi)。

輸出

輸出取勝人取數(shù)和。失敗人取數(shù)的和,空格分開(kāi)。

樣例輸入

6

123456

樣例輸出

129

<>

0

(

12(100000];

((""))實(shí)現(xiàn)多行實(shí)例輸入;

(

12=0;

(0<)

(""[iD;

(0<2)

H[i];

(1<2)

22[i]隔數(shù)取數(shù)求和12;

(1>2)

("\n"12);

("\n"21);

}順序輸出取勝人取數(shù)和。失敗人取數(shù)和;

0;

)

心得;這題主要運(yùn)用貪心算法的思想,要想先取數(shù)人獲勝,就得讓這個(gè)人每一步都盡可能取

得最大的數(shù),這樣他取數(shù)的和才會(huì)總體大于后取數(shù)的那個(gè)人的取數(shù)和。首先定義一個(gè)一維數(shù)

組,把要取得數(shù)從小到大的順序放在里面,然后一個(gè)人從第一個(gè)按照隔一個(gè)數(shù)取,求和1;

另一個(gè)人從第二個(gè)按照隔一個(gè)人取,求和2,比較1和2的最大值,輸出。

13問(wèn)題C:整除問(wèn)題

時(shí)間限制:1內(nèi)存限制:128

提交:70解決:44

[提交][狀態(tài)][討論版]

題目描述

編寫(xiě)算法對(duì)輸入的一個(gè)整數(shù),判斷它能否被3,5,7整除,并輸出以下信息之一:

能同時(shí)被3,5,7整除;

能被其中兩個(gè)數(shù)(要指出哪兩個(gè))整除;

能被其中一個(gè)數(shù)(要指出那一個(gè))整除;

不能被3,5,7任一個(gè)整除;

輸入

輸入一個(gè)整數(shù)<100000;

輸出

如果都能整除輸出""

如果都不能整除輸出“"

如果能被3和5整除則輸出“35”。中間有一個(gè)空格,

注意按由小到大輸出。

樣例輸入

35

樣例輸出

57

<>

0

(

n;k;

("");

((30)+(50)*2+(70)*4)判斷整數(shù)是否能被2,3,5整除;

(k)

(

7("");

6("57");

5("37");

4("4");

3("35");

2("5");

1("3");

0("");

}用語(yǔ)句輸出結(jié)果;

)

心得:這題主要考察輸入輸出問(wèn)題,首先輸入一個(gè)整數(shù),運(yùn)用語(yǔ)句((30)+(50)*2+(70)*4),判

斷這個(gè)數(shù)能否被2,3,5整除,用語(yǔ)句輸出所有可能發(fā)生的結(jié)果,然后輸出題目中所要求輸出

的結(jié)果,其中用語(yǔ)句起到了優(yōu)化算法的作用。

14問(wèn)題A警察抓小偷

時(shí)間限制:1內(nèi)存限制:128

提交:115解決:88

[提交][狀態(tài)][討論版]

題目描述

警察局抓了,4名小偷嫌疑犯,其中只有一個(gè)人是小偷,審問(wèn)中,a說(shuō):我不是小偷,b說(shuō):c是

小偷,c說(shuō):小偷肯定是d,d說(shuō):c在冤枉人?,F(xiàn)在己經(jīng)知道4個(gè)人中3人說(shuō)的是真話,一人

說(shuō)的是假話,問(wèn)到底誰(shuí)是小偷。

輸入

輸出

小偷是c

樣例輸入

樣例輸出

小偷是c

<>

0

(

X;

(1<=4)執(zhí)行4次循環(huán);

(((1)+(3)+(4)+(4))3)判斷是否有三個(gè)人說(shuō)真話的情況;

("",64);

)

心得:這個(gè)題目主要考察把文字信息轉(zhuǎn)化為數(shù)字信息,即信息數(shù)字化,把A,B,C,D看

成1,2,3,4;x定義為小偷,然后把A,B,C,D四人所說(shuō)的話變成數(shù)字語(yǔ)言,判斷當(dāng)

他們四個(gè)人有三個(gè)人說(shuō)真話的情況,然后以把數(shù)字變成字母輸出。

15問(wèn)題B:n!

時(shí)間限制:1內(nèi)存限制:128

提交:262解決:162

[提交][狀態(tài)][討論版]

題目描述

輸入一個(gè)整數(shù)N,輸出它的階乘。

輸入

輸入一個(gè)整數(shù)<20;

輸出

輸出它的階乘

樣例輸入

5

樣例輸出

120

提示

<>

0

(

(m)對(duì)函數(shù)進(jìn)行聲明;

(n);

0;

(n)定義函數(shù)

(01)

(

1;

}判斷當(dāng)n等于。和1這兩種情況;

*(1)調(diào)用函數(shù)求值;

f;

)

心得:這里主要運(yùn)用函數(shù)的遞歸調(diào)用,首先用對(duì)輸入的數(shù)進(jìn)行判斷,看是否為1和0,如果

是,那么輸出其階乘等于1,如果不是那么調(diào)用函數(shù)*(1)進(jìn)行求值,函數(shù)總共被調(diào)用了n次,

求得最后的結(jié)果,輸出。

16漢諾塔問(wèn)題

時(shí)間限制:1內(nèi)存限制:128

提交:224解決:138

[提交][狀態(tài)][討論版]

題目描述

把N個(gè)盤(pán)子從A柱子借助B柱子移到C柱子,要求每次只能移動(dòng)一個(gè)盤(pán)子,并且小盤(pán)

子不能放到大盤(pán)子上。問(wèn)如何移動(dòng)。

輸入

輸入盤(pán)子的個(gè)數(shù)N(<=10)

輸出

輸出移動(dòng)的次數(shù)。

樣例輸入

3

樣例輸出

7

提示

<>

0

1;

(1)去除盤(pán)子的個(gè)數(shù)為1的情況;

(

(1<)

1求盤(pán)子移動(dòng)的次數(shù);

(

1;

0;

)

心得:這題主要考察循環(huán)與遞歸問(wèn)題,先假設(shè)盤(pán)子的個(gè)數(shù),取幾個(gè)特殊值,找出移動(dòng)盤(pán)子次

數(shù)的規(guī)律。這個(gè)編程首先判斷盤(pán)子個(gè)數(shù),如果是1,則輸出1次,如果不是1,執(zhí)行n次循

環(huán),求得j,然后求出移動(dòng)盤(pán)子的次數(shù)1,輸出。

17問(wèn)題D:猴子吃桃子問(wèn)題(遞歸)

時(shí)間限制:1內(nèi)存限制:128

提交:98解決:87

[提交][狀態(tài)][討論版]

題目描述

一只猴子摘了若干桃子,每天吃現(xiàn)有桃子的一半多一個(gè),到第10天時(shí)就只有一個(gè)桃子

了,求原來(lái)有多少個(gè)桃。

輸入

輸出

輸出原來(lái)的桃子數(shù)

樣例輸入

樣例輸出

提示

<>

0

(

1;

(9>0)執(zhí)行9次循環(huán);

(1)*2求每天桃子的個(gè)數(shù);

("\n");

1;

)

心得:這個(gè)題目運(yùn)用數(shù)學(xué)中倒推的方法求得,先求出第10天桃子的個(gè)數(shù),然后再求出前一

天桃子的個(gè)數(shù),直到求出第1天桃子的個(gè)數(shù),找出其規(guī)律。設(shè)桃子的個(gè)數(shù)為x,則每天剩余

桃子的個(gè)數(shù)滿足公式(1)*2,再用一個(gè)循環(huán)求出原來(lái)的桃子數(shù)。

18問(wèn)題A:(I)

時(shí)間限制:1內(nèi)存限制:128

提交:402解決:183

[提交][狀態(tài)][討論版]

題目描述

a+b.

9■!■■II?

9,

輸入

aab,a,

輸出

abab

樣例輸入

15

1020

樣例輸出

6

30

提示

<>

0

{

((""))實(shí)現(xiàn)多行實(shí)例輸入;

(

求a和b的和;

心得:這個(gè)題主要考察了輸入和輸出問(wèn)題,目的是計(jì)算整數(shù)a和b的和,首先用((”"))語(yǔ)句

實(shí)現(xiàn)多行實(shí)例輸入,然后求出a和b的和,輸出。

19()

時(shí)間限制:1內(nèi)存限制:128

提交:310解決:179

[提交][狀態(tài)][討論版]

題目描述

a+b.

輸入

N,Naab,a,

輸出

abab,

樣例輸入

15

1020

樣例輸出

6

30

提示

[提交][狀態(tài)][討論版]

<>

0

(

()限制求和的次數(shù);

{

("”)輸入;

(”\n")求的和;

)

)

心得:這個(gè)題目主要考察了輸入輸出問(wèn)題,題目要求第一行輸入要輸入要計(jì)算和的數(shù)量,用

()語(yǔ)句滿足了題目的要求,即執(zhí)行n次,然后就是輸入a和b,接著求出和,輸出。

20問(wèn)題C:()

時(shí)間限制:1內(nèi)存限制:128

提交:314解決:169

[提交][狀態(tài)][討論版]

題目描述

a+b.

輸入

aab,.A00

輸出

abab,

樣例輸入

15

1020

00

樣例輸出

6

30

<>

0

(

(("")!(00))/*實(shí)現(xiàn)多行實(shí)例輸入,當(dāng)都為0時(shí)結(jié)束*/

(

("\n")求的和;

}

)

心得:這個(gè)題目也是輸入輸出問(wèn)題,目的也是求出a和1b的和,然后按要求輸入輸出,對(duì)于

輸入:(("")!(00))運(yùn)用這個(gè)語(yǔ)句實(shí)現(xiàn)多行實(shí)例輸入,如果輸入00,則結(jié)束,然后求得a和b

的和,輸出。

21問(wèn)題D:0

時(shí)間限制:1內(nèi)存限制:128

提交:287解決:166

[提交][狀態(tài)][討論版]

題目描述

輸入

aN,N.A0

輸出

樣例輸入

4102340

5112855

0

樣例輸出

55

31

提示

<>

0

(

9

1;

(0)

{

(0);判斷n是否為斷0,是結(jié)束,不是執(zhí)行下面語(yǔ)句;

0;

(0<)執(zhí)行n次循環(huán);

(

("");

每次循環(huán)求和;

)

("\n");

}

)

心得:同樣,這個(gè)題目也是主要考察了輸入輸出問(wèn)題,計(jì)算一些整數(shù)的和,并按指定的格式

輸出,首先輸入一些整數(shù)判斷是否都為0,如果是,則結(jié)束,如果不是則執(zhí)行循環(huán),把所有

輸入的整數(shù)相加,然后輸出。

22問(wèn)題B:埃及分?jǐn)?shù)

時(shí)間限制:1內(nèi)存限制:128

提交:21解決:11

[提交][狀態(tài)][討論版]

題目描述

設(shè)計(jì)一個(gè)算法,把一個(gè)真分?jǐn)?shù)表示為最少埃及分?jǐn)?shù)之和的形式,所謂埃及分?jǐn)?shù),是

指分子為1的分?jǐn)?shù)。

如7/8=1/2+1/3+1/24。

輸入

輸入兩個(gè)整數(shù),第一個(gè)表示分子,第二個(gè)數(shù)表示分母。

輸出

輸出埃及分?jǐn)?shù)之和,按分母有小到大的順序,中間用空格分開(kāi)。

樣例輸入

78

樣例輸出

2324

提示

<>

0

(("”))實(shí)現(xiàn)多行實(shí)例輸入:

(

(10)

("\n")如果這個(gè)數(shù)為1或分子為1,輸出分母的值;

(1)

(

1;

*?

*c;

("")通過(guò)公式求出埃及分?jǐn)?shù)。

(01)

(

("\n");

1;

)

)

)

0;

心得:首先通過(guò)語(yǔ)句實(shí)現(xiàn)多行實(shí)例輸入,首先輸入這是分?jǐn)?shù)的的分子分母,判斷這個(gè)數(shù)是否

為1或這個(gè)數(shù)的分子為1,如果是,直接輸出分母的值;接下來(lái)用一循環(huán),通過(guò)求公式依次

算出埃及數(shù),然后輸出,用每次計(jì)算的結(jié)果判斷分子是否能整除分母或分子為一,如果是,

直接輸出整除后結(jié)果。

23問(wèn)題A:完數(shù)

時(shí)間限制:1內(nèi)存限制:128

提交:192解決:70

[提交][狀態(tài)][討論版]

題目描述

完數(shù)的定義:如果一個(gè)大于1的正整數(shù)的所有因子之和等于它的本身,則稱這個(gè)

數(shù)是完數(shù),比如6,28都是完數(shù):6=1+2+3;28=1+2+4+7+14o

本題的任務(wù)是判斷兩個(gè)正整數(shù)之間完數(shù)的個(gè)數(shù)。

輸入

輸入數(shù)據(jù)包含多行,第一行是一個(gè)正整數(shù)n,表示測(cè)試實(shí)例的個(gè)數(shù),然后就是n

個(gè)測(cè)試實(shí)例,每個(gè)實(shí)例占一行,由兩個(gè)正整數(shù)1和2組成,(1<12<10000)。

輸出

對(duì)于每組測(cè)試數(shù)據(jù),請(qǐng)輸出1和2之間(包括1和2)存在的完數(shù)個(gè)數(shù)。

樣例輸入

2

25

57

樣例輸出

0

提示<>

0

12;

((""))實(shí)現(xiàn)多行實(shí)例輸入;

(

(0<)執(zhí)行n次循環(huán);

(

("”12)輸入兩個(gè)整數(shù);

0;

(1<2)執(zhí)行21+1次循環(huán);

(

0;

(1<)

(

(0)判斷1和2之間的數(shù)是否能被k整除;

0

如果是完數(shù),統(tǒng)計(jì)其個(gè)數(shù);

)

("\n");

)

}

0;

)

心得:這個(gè)題主要考察了輸入輸出和循環(huán)問(wèn)題,用語(yǔ)句實(shí)現(xiàn)多行輸入,首先輸入兩個(gè)數(shù),判

斷這兩個(gè)數(shù)之間的數(shù)(包括這兩個(gè)數(shù))是不是完數(shù),如果是完數(shù),則記錄這兩個(gè)數(shù)之間完數(shù)

的個(gè)數(shù),然后輸出。

24問(wèn)題

溫馨提示

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

評(píng)論

0/150

提交評(píng)論