c語言程序設(shè)計(jì)競(jìng)賽題及其答案_第1頁
c語言程序設(shè)計(jì)競(jìng)賽題及其答案_第2頁
c語言程序設(shè)計(jì)競(jìng)賽題及其答案_第3頁
c語言程序設(shè)計(jì)競(jìng)賽題及其答案_第4頁
c語言程序設(shè)計(jì)競(jìng)賽題及其答案_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡(jiǎn)介

1、數(shù)學(xué)與統(tǒng)計(jì)學(xué)院第三屆計(jì)算機(jī)程序設(shè)計(jì)競(jìng)賽題競(jìng)賽需知: 答案必須寫在答題紙上。程序采用C/JAVA /VB/VFP語言實(shí)現(xiàn)均可。考慮到各種因素,程序的鍵盤輸入和結(jié)果輸出可以用偽代碼或者自然語言表示。但是必須說明輸入變量和輸出變量。題目最好能用完整、正確的語言程序來解決問題,如確實(shí)無法編寫完整語言程序的,可以寫出程序主要框架和流程,必要時(shí)可以用偽代碼或者自然語言描述算法(程序)。一、玫瑰花數(shù)(20分)如果一個(gè)四位數(shù)等于它的每一位數(shù)的4次方之和,則稱為玫瑰花數(shù)。例如:,編程輸出所有的玫瑰花數(shù)。 #include void main() int i,j,k,l,m;for(i=999;i=9999;i+

2、)j=i/1000;k=i%10;l=i/100-10*j;m=i/10-100*j-10*l;if(i=j*j*j*j+k*k*k*k+l*l*l*l+m*m*m*m)printf(%dn,i);二、菱形圖案(20分)對(duì)給定的奇數(shù)n,編程打印菱形圖案。 輸入樣例:7輸出樣例:* * * * * * #include#includevoid main()int i,j,k;int n;scanf(%d,&n);for(i=0;in;i+)for(j=0;jfabs(n/2-i);j+)printf( );for(k=0;kn-2*j;k+)printf(*);printf(n);三、鉆石獎(jiǎng)勵(lì)(

3、20分)海盜們決定用“投環(huán)套物”的方式來獎(jiǎng)勵(lì)最近一次行動(dòng)中貢獻(xiàn)最大的人。他們將1克拉鉆石排列成矩陣,通過投擲圓環(huán)決定獎(jiǎng)勵(lì)的鉆石的數(shù)量。假設(shè)每個(gè)鉆石的x和y坐標(biāo)都是1到99的整數(shù),輸入矩陣及圓形,請(qǐng)你幫他們判斷一下這個(gè)人能獲得多少克拉的鉆石。*輸入格式輸入數(shù)據(jù)包含兩行,第一行為矩陣的行數(shù)及列數(shù),第二行為圓心的坐標(biāo)點(diǎn)及半徑。輸出格式輸出數(shù)據(jù)為圓形內(nèi)的鉆石的克拉數(shù)(包括圓形邊上的鉆石)。輸入樣例4 42 1 1輸出樣例5#include#includevoid main()int i,j,x,y;float r;int a,b,count=0;printf(請(qǐng)輸入矩陣的行列i,j:);scanf(%

4、d %d,&i,&j);printf(請(qǐng)輸入圓心的坐標(biāo)點(diǎn)及半徑x,y,r:);scanf(%d %d %f,&x,&y,&r);for(a=0;ai;a+)for(b=0;bj;b+)if(sqrt(a-x)*(a-x)+(b-y)*(b-y)=2) 個(gè)連續(xù)正整數(shù)之和,如:15=1+2+3+4+5 15=4+5+6 15=7+8請(qǐng)編寫程序,根據(jù)輸入的任何一個(gè)正整數(shù),找出符合這種要求的所有連續(xù)正整數(shù)序列。輸入數(shù)據(jù):一個(gè)正整數(shù),以命令行參數(shù)的形式提供給程序。輸出數(shù)據(jù):在標(biāo)準(zhǔn)輸出上打印出符合題目描述的全部正整數(shù)序列,每行一個(gè)序列,每個(gè)序列都從該序列的最小正整數(shù)開始、以從小到大的順序打印。如果結(jié)果有多

5、個(gè)序列,按各序列的最小正整數(shù)的大小從小到大打印各序列。此外,序列不允許重復(fù),序列內(nèi)的整數(shù)用一個(gè)空格分隔。如果沒有符合要求的序列,輸出 “NONE” 。例如,對(duì)于15,其輸出結(jié)果是:1 2 3 4 5 4 5 6 7 8 對(duì)于16,其輸出結(jié)果是:NONE #includevoid main()int i,j,h,k,n;n=1;k=0;scanf(%d,i);for(j=1;j=i/2+1;j+)k=k+j;if(k=i)for(h=n;h=i/2+1;h+)printf(%d h);printf(n);n+;j+; 五、(密鑰短語密碼)(20分)讓我們選一個(gè)英文短語, 稱其為密鑰字(key w

6、ord)或密鑰短語(key phrase),如HAPPY NEWYEAR, 按順序去掉重復(fù)字母和空格得HAPYNEWR。將它依次寫在明文字母表之下, 而后再將明文字母表中未在短語中出現(xiàn)過的字母依次寫在此短語之后, 就可構(gòu)造出一個(gè)代替表, 如下所示:明文:ABCDEFGHIJKLMNOPQRSTUVWXYZ密文:HAPYNEWRBCDFGIJKLMOQSTUVXZ請(qǐng)編寫一個(gè)程序,可以通過用戶輸入密碼(一個(gè)字符串)生成密碼表(即上面的那個(gè)表),然后可以對(duì)用戶輸入的明文進(jìn)行加密。輸入樣例:明文:ILoveHuiwen輸出樣例:密文:BFjtnRsbuni#includevoid main()int

7、i,j,h,k,n;n=1;k=0;scanf(%d,i);for(j=1;j=i/2+1;j+)k=k+j;if(k=i)for(h=n;h=i/2+1;h+)printf(%d h);printf(n);n+;j+;六、最少錢幣(附加題20分) 這是一個(gè)古老而又經(jīng)典的問題。用給定的幾種錢幣湊成某個(gè)錢數(shù),一般而言有多種方式。例如:給定了6種錢幣面值為2、5、10、20、50、100,用來湊15元,可以用5個(gè)2元、1個(gè)5元,或者3個(gè)5元,或者1個(gè)5元、1個(gè)10元,等等。顯然,最少需要2個(gè)錢幣才能湊成15元。 你的任務(wù)就是,給定若干個(gè)互不相同的錢幣面值,編程計(jì)算,最少需要多少個(gè)錢幣才能湊成某個(gè)給出的錢數(shù)。輸入: 第一行是待湊的錢數(shù)值M(1 = M = 2000,整數(shù)),接著的一行中,第一個(gè)整數(shù)K(1 = K = 10)表示幣種個(gè)數(shù),隨后是K個(gè)互不相同的錢幣面值Ki(1 = Ki = 1000)。輸入M=0時(shí)結(jié)束。輸出: 輸出一行,即湊成錢數(shù)值M最少需要的錢幣個(gè)數(shù)。如果湊錢失敗,輸出“Impossible”。你可以假設(shè),每種待湊錢幣的數(shù)量是無限多的。輸入樣例:156 2 5 10 20 50 100輸出樣例:2#include#includevoid main()int M,K,i;int a10;printf(請(qǐng)輸入待湊錢數(shù)M:);scanf(%d,&M)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論