2015程序設(shè)計答題分析12_第1頁
2015程序設(shè)計答題分析12_第2頁
2015程序設(shè)計答題分析12_第3頁
免費預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

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

文檔簡介

1、2015 程序設(shè)計答題分析( 小學(xué))1. 超市為了促銷,規(guī)定:購物不足 60 元的按原價付款,超過 60 不足 200 的按九折付款, 超過 200 元的,超過部分按八折付款。 編程完成超市的自動計費 的工作,輸入購物金額原價,輸出打折后的金額。分析:這個題是一個分支結(jié)構(gòu)的多層嵌套。閱讀題目要求時,對200 元以上的,超過 200 的部分是 8 折,剩下的 200 元按 9 折算。打折后可能會是小數(shù)點, 要考慮數(shù)據(jù)類型。Var n:real;BeginRead(n);If n>60 thenIf n<=200 thenN:=n*0.9Else n:=(n-200)*0.8+180;

2、Write(n)End.2. 輸入一個奇數(shù)n,請編程計算并輸出1+(1+3)+(1+3+5)+(1+3+5+n )的結(jié)果。分析:此題是簡單的雙層循環(huán)。Var i,j,s,n:integer;BeginRead(n);For i:=1 to n doFor j:=1 to i doS:=s+(2*j-1);Weite(s);End.3. 李先生和他的孫子同出生于 20世紀(jì), 他的孫子與他的年齡之差為 60 歲, 李先生和他的孫子出生年份被 3,4,5,6除, 余數(shù)分別為 1,2,3,4,編程求出李先生和 他的孫子各出生在哪一年。分析:這個題用窮舉法就太累了。分析一下,一個數(shù)字被 5除余 3的話,

3、這 個數(shù)的個位數(shù)只能是 3和 8,被 6除余 4的話,個位數(shù)是 4、8、2、6、0,這兩 者同時滿足,這個年份的個位數(shù)只能是 8。只要從 1908、1918、1928、1938,這 四個數(shù)中找一個滿足條件同時加 60 后也滿足條件的就行了。4. 狼追兔子,兔子躲進(jìn)了 10 個環(huán)形分布的洞的某一個中。狼在第 1 個洞 中沒有找到兔子,就間隔 1 個洞,到第 3 個洞中去找,也沒找到兔子,就間隔 2 個洞,到第 6個洞中去找。以后狼每次多隔 1 個洞去找兔子, 。這樣狼找了 1000 次也找不到兔子。請問兔子可能躲在哪個洞中?除操作的結(jié)束狀態(tài)(條件)是什么呢?而且,狼的搜索過程中,如果要間隔 11

4、 個洞時,我們是否可以認(rèn)為就是間隔 1 個洞?實際上,第一個問題應(yīng)該是當(dāng)狼回到第 1個洞,并且又上間隔 1 個洞去找 兔子時,就應(yīng)該結(jié)束刪除操作,因為此后的搜索是重復(fù)以前的搜索了,此時,那 些沒有被刪除過的洞就是答案。 這里,大家一定不能想當(dāng)然地認(rèn)為: 結(jié)束條件就 是只剩下一個洞的時候! 題目中并沒有說明只有一個答案, 事實上是有四個洞的!第二個問題也是可行的。 因為只有 10個洞,間隔 11個洞和間隔 1個洞的 作用是相同的。var d:array1.10 of integer;i, j,k,l:integer;beginfor i:=1 to 10 do di:=1;i:=1;j:=1;r

5、epeatdi:=0;j:=j+1;if j>10 then j:=j-10;i:=i+j;if i>10 then i:=i-10;until (i=1) and (j=1);for i:=1 to 10 do if di>0 then write(i);end.初中 1從鍵盤輸入一個小于 1000的正整數(shù) , 若此數(shù)的各位數(shù)字之和能被 7整除, 則 輸出這個數(shù)。分析:此題簡單,但重點在“被”字上,對輸入的數(shù)分解出個、十、百位上的數(shù) 字,相加后得出的和被 7 整除。參考程序program p1;var n,m,k:integer;beginreadln(k);m:=0;wh

6、ile n<>0 dobeginm:=m+n mod 10;n:=n div 10;end;if m mod 7=0 then writeln(k);end.2. 鍵盤輸入N,求N !末尾有多少個連續(xù)的零。其中N!=1X 2X 3X N(1<=N<=1000)。算法一:從1乘到n,每乘一個數(shù)判斷一次,若后面有 0則去掉后面的0,并記 下0的個數(shù)。為了不超出數(shù)的表示范圍, 去掉與生成 0無關(guān)的數(shù),只保留有效位 數(shù),當(dāng)乘完 n 次后就得到 0 的個數(shù)。( pascal 程序如下) var i,t,n,sum:longint;begint:=0; sum:=1;readln(

7、n);for i:=1 to n dobeginsum:=sum*i;while sum mod 10=0 dobeginsum:=sum div 10;inc(t); 計數(shù)器增加 1end;sum:=sum mod 1000; 舍去與生成 0 無關(guān)的數(shù) end;writeln(t:6);end.算法二:此題中生成O的個數(shù)只與含5的個數(shù)有關(guān),n!的分解數(shù)中含5的 個數(shù)就等于末尾O的個數(shù),因此問題轉(zhuǎn)化為直接求n!的分解數(shù)中含5的個數(shù)。 var t,n:integer;beginreadln(n);t:=0;repeatn:=n div 5 ;inc(t,n); 計數(shù)器增加 nuntil n<

8、;5;writeln(t:6);end.分析對比兩種算法就不難看出, 它們的時間復(fù)雜度分別為 O( N)、O(logN ), 算法二的執(zhí)行時間遠(yuǎn)遠(yuǎn)小于算法一的執(zhí)行時間。在信息學(xué)奧賽中, 其主要任務(wù)就是設(shè)計一個有效的算法, 去求解所給出的問 題。如果僅僅學(xué)會一種程序設(shè)計語言, 而沒學(xué)過算法的選手在比賽中是不會取得 好的成績的,選手水平的高低在于能否設(shè)計出好的算法。3. 有 1 至 8 號共 8個球,其中某一個為次品,僅重量不同 (可輕可重 )。編 程,在以天平為工具,通過測重量用最少的次數(shù)挑出次品,并確定它是輕是重。 提示:可以用下面表示的比較方法來設(shè)計程序:b1+b2+b3? b4+b5+b6

9、 >=< b1+b4?b2+b5 b7?b8 bl+b4 ?b2+b5 >=< >< >=< b1?b2 b3?b1 b2?b1 b7?b1 b8?bl bl ?b2 b1?b3 b2?b1 >= => >= >= => >= >= >=b1b5b6b3b2b4b7b8b7b8b2b4b3b6blb5 重輕輕重重輕重輕輕重輕重輕重輕重 參考考生程序 program p3;var cpcode:-8.8; cpweight,zpweight,i:integer; wt:array1.8 of inte

10、ger; function finddiff(a,b,c:integer):integer; begin if a=b then if a=c then finddiff:=0 else if a>c then finddiff:=-3 else finddiff:=3 else if a>b thenif b=c then finddiff:=1 else finddiff:=-2 elseif b=c then finddiff:=-1 else finddiff:=2; end;begin write('cipin hao:'); readln(cpcode)

11、; write('cipin zhong:'); readln(cpweight); write('zhengpinzhong:'); readln(zpweight); write('cipin hao:'); for i:=1 to 8 do if i=cpcode then wti:=cpweight else wti:=zpweight; if wt1+wt2+wt3<>wt4+wt5+wt6 then beginif finddiff(wt1,wt2,wt3)=0 thenthenif finddiff(wt4,wt5,wt

12、6)>0 cpcode:=3+finddiff(wt4,wt5,wt6)else cpcode:=-3-finddiff(wt4,wt5,wt6) else cpcode:=finddiff(wt1,wt2,wt3); end elsebeginif wt7>wt8 then if wt7>wt1 then cpcode:=7 else cpcode:=-8 else if wt7=wt1 then cpcode:=8 else cpcode:=-7;end;writeln(abs(cpcode);write('Cipin: ');if cpcode<0 then writeln('QING') else writeln('ZHONG');end.4. 任意一個自然數(shù),我們可以將其平均截取成三個自然數(shù)。例如135768,可以截取成 13,57,68。如果某自然數(shù)不能平均截取 (位數(shù)不能被 3 整除 ),可將該 自然數(shù)高位補零后截取。 如 4128,可在高位補零后成為 004128,平均截取成 00, 41,28 三個數(shù)。編程從鍵盤上輸入一個自然數(shù) N(N 的位數(shù) <12),計算截取后第 一個數(shù)加第三個數(shù)減第二個數(shù)的結(jié)果。分析:此題難點數(shù)據(jù)類型上,限定小于 12 位的自然數(shù)已超出

溫馨提示

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

最新文檔

評論

0/150

提交評論