【正文】
精度運(yùn)算} a:array[150] of longint。 for i:= 2 to n do begin x:=(i1)*6。 end。 for i:= j to 50 do write(a[i])。 var f1,f2,s:array[1max] of longint。 f1[max1]:=1。 f1[j]:=k mod 10。,for i:= max downto 1 do {相減} begin if f1[i]f2[i] then begin f1[i]:=f1[i]+10。 end。 end.,第二十六頁,共八十七頁。,第二十七頁,共八十七頁。,第二十八頁,共八十七頁。{存放大數(shù)} i,j,n:integer。)。 reset(input)。{初值} for i:=1 to n do {遞推n次} begin for j:=1 to 62 do a[j]:=a[j]*2。 end。 if f then write(a[i])。 end.,第三十頁,共八十七頁。,意大利著名數(shù)學(xué)家斐波那契在研究兔子繁殖問題時,發(fā)現(xiàn)有這樣一組數(shù):1,1,2,3,5,8,13,…,其中從第三個數(shù)起,每一個數(shù)都等于它前面兩上數(shù)的和。(1=M,N=1000) 【輸出格式】 爬行有多少種路線。 begin readln(m,n)。 for j:= 64 downto 1 do begin x:=x+a[i2,j]+a[i1,j]。 end。 writeln。,以某位置劃分求遞推式,第三十七頁,共八十七頁。,符合條件的n位數(shù)可分為兩類: Ⅰ.首位是2,則以下n-1位數(shù)符合條件的個數(shù)為f(n1); Ⅱ.首位是1,則第二位應(yīng)是2,以下n-2位的個數(shù)為f(n2). 于是,f(n)=f(n-1)+f(n-2). 故f(n)為斐波那契數(shù)列. ∵f(1)=2,f(2)=3 ∴f(8)=55.,第三十八頁,共八十七頁。 此時用一個12的骨牌鋪滿方格,共有如下3種鋪法: 試對給出的任意一個n(n0),求出鋪法總數(shù)的遞推公式。問有多少種涂法?,解:設(shè)共有an種涂法,易見a1=3,a2=6,a3=6,且當(dāng)n≥4時,將n個格子依次編號后,格1與格(n1)不相鄰。 綜上,可得an=an1+2an2(n≥4),按前n1格首尾關(guān)系討論,第四十二頁,共八十七頁。 由分步計(jì)數(shù)原理和分類計(jì)數(shù)原理,我們便得到了數(shù)列 的遞推關(guān)系式: ,顯然 ,再由遞推關(guān)系有,,第四十三頁,共八十七頁。,染色問題,用4種不同顏色涂四邊形的4個頂點(diǎn),要求每點(diǎn)染一種顏色,相鄰的頂點(diǎn)染不同的顏色,則不同的染色方法有( ) (A)84種 (B)72種 (C)48種 (D)24種,A,第四十五頁,共八十七頁。 function jc(k:integer):longint。 jc:=j。{初值 } for i:= 4 to n do begin j:=1。 writeln(a[n])。,圖中5四個區(qū)域圍成一個四邊形,因此可以把它們看成是一個四邊形的4個頂點(diǎn),而區(qū)域1就是這個四邊形對角線的交點(diǎn)。,某城市在中心廣場建造一個花圃,花圃分成6個部分(如圖),現(xiàn)要栽種4種不同顏色的花,每部分栽種一種且相鄰部分不能栽種同樣顏色的花,不同的栽種方法共有 種。,分析 :設(shè)第n次傳球后,球又回到甲手中的傳球方式有an種。 由于甲是發(fā)球者,一次傳球后球又回到甲手中的傳球方式是不存在的,所以a1=0。,var a:array[1100] of longint。 j:=1。 writeln(a[m])。 i,j,t,k,n,m:longint。 for i:= 2 to m do begin for j:= 100 downto 1 do s[j]:=s[j]*(n1)。,for j:= 100 downto 1 do a[i,j]:=s[j]a[i1,j]。 end。 end.,第五十五頁,共八十七頁。 輸入文件14.in:一個正整數(shù),表示凸多邊形的邊數(shù)。而k可以選2到n1,所以根據(jù)加法原理,得出總的方案數(shù)為 注意,就這個遞推關(guān)系而言,臨界值應(yīng)為C2=1,而不是C3=1,否則遞推關(guān)系就得不到正確解,這與原問題的實(shí)際情況可能不符(即兩邊形),其實(shí)這只是理解上的差異.,第五十七頁,共八十七頁。 total:longint。 for k:=2 to i1 do c[i]:=c[i]+c[k]*c[ik+1]。,求路徑總數(shù),下圖是某居民小區(qū)道路圖,小明每天由家(A點(diǎn))到學(xué)校(B點(diǎn)),他只沿道路向上或向右行走,那么他最多有( )天走不同線路?,A,B,495,1 1 1 1,1 1 1 1 1 1 1 1,2 3 4 5 6 7 8 9,3 6 10 15 21 28 36 45,4 10 20 35 56 84 120 165,5 15 35 70 126 210 330 495,第五十九頁,共八十七頁。 fillchar(a,sizeof(a),0)。 writeln(a[n,m])。此矩形障礙區(qū)域用2對頂點(diǎn)坐標(biāo)給出,如上圖中的2對頂點(diǎn)坐標(biāo)為(2,2),(8,4),此時從A出發(fā)到達(dá)B的路徑有兩條。,第六十一頁,共八十七頁。 begin readln(n,m)。 for i:=y1 to y2 do for j:=x1 to x2 do b[i,j]:=false。 for j:=1 to n do begin if not(b[1,j]) then break 。 write(a[m,n])。 b:array[150,150] of boolean。 fillchar(b,sizeof(b),true)。 end。,for i:=2 to m do for j:=2 to n do if b[i,j] then begin g:=0。 end。 for i:=j downto 1 do write(a[m,n,i])。同時在棋盤上的任一點(diǎn)有一個對方的馬(如上圖的C點(diǎn)),該馬所在的點(diǎn)和所有跳躍一步可達(dá)的點(diǎn)稱為對方馬的控制點(diǎn)?,F(xiàn)在要求你計(jì)算出卒從 A 點(diǎn)能夠到達(dá) B 點(diǎn)的路徑的條數(shù)。,第六十四頁,共八十七頁。 i,j,x,y,k,p,n,m:integer。 fillchar(a,sizeof(a),0)。 a[i,0]:=1。 end。,const{加入高精度運(yùn)算} L=30。 i,j,x,y,k,p,n,m:integer。 fillchar(a,sizeof(a),0)。 a[i,0,1]:=1。 end。 k:=a[i,j,p] div 10。 j:=L。,傳球游戲,【問題描述】 上體育課的時候,小蠻的老師經(jīng)常帶著同學(xué)們一起做游戲。兩種傳球方法被視為不同的方法,當(dāng)且僅當(dāng)這兩種方法中,接到球的同學(xué)按接球順序組成的序列是不同的。 【輸出】 輸出文件ball.out共一行,有一個整數(shù),表示符合題意的方法數(shù)。,第七十頁,共八十七頁。 fillchar(f,sizeof(f),0)。 f[n,k]:=f[n1,k1]+f[1,k1]。,傳球問題,4個人進(jìn)行籃球訓(xùn)練,互相傳球接球,要求每個人接球后馬上傳給別人,開始由甲發(fā)球,并作為第一次傳球,第五次傳球后,球又回到甲手中,問有多少種傳球方式?,第七十二頁,共八十七頁。 a[0,1,1]:=1。 g:=g div 10。 l:=100。,整數(shù)劃分,把一個正整數(shù)N劃分成一些正整數(shù)的和,例如: N =n1+n2+…+nk 且滿足1=n1=n2=…=nk = N , 叫做N的一個劃分。,設(shè) 表示把正整數(shù)a做分劃、其中最大的一份恰好是b的方案總數(shù)。即: i=1+1+1+…+1(共i個1)。,var g:array[0100,0100] of longint。 for j:=0 to n do g[j,1]:=1。,倒推法,我們把由已知初始值為F1,通過遞推關(guān)系式Fn=g(Fn1)求出其最終結(jié)果Fn的遞推方式稱為順推法.同理,把已知最終結(jié)果為Fn,通過遞推關(guān)系式Fn1=g(Fn),求出其初始值F1的遞推方式稱之為倒推法。若不存 在路徑,則輸出‘no’。對于馬的移動方法,我們用K來表示四種移動方向(1,2,3,4);而每種移動方法用偏移值來表示,并將這些偏移值分別保存在數(shù)組dx和dy中,如下表 :,第八十一頁,共八十七頁。 我們用一個二維數(shù)組a表示棋盤,采用倒推法,從終點(diǎn)(n,m)往左遞推, 設(shè)初始值a[n,m]為(1,1),如果從(i,j)一步能走到(n,m),就將(n,m)存放在a[i,j]中。,第八十二頁,共八十七頁。 end。 fillchar(a,sizeof(a),0)。 a[idx[k],jdy[k]].y:=j。) else begin{存在路徑} i:=1。,i,39。)。 write(39。,j,39。 end?,F(xiàn)給出的條件是:共有n個車站,始發(fā)站上車的人數(shù)為a,最后一站下車的人數(shù)是m(全部下車)。 ①依次枚舉第2站的上車人數(shù)為1,2,…… 設(shè)第2站的上車人數(shù)為k up[2]=down[2]=k ,p[2]=p[1]+up[2]down[2]=a ②按照下式遞推第3站…第n1站的車上人數(shù) up[i]=up[i1]+up[i2] down[i]=up[i1] p[i]=p[i1]+up[i]down[i]=p[i1]+up[i2] (3≤i≤n1) ③計(jì)算從x站開出時車上的人數(shù) 若p[n1]=m,則輸出p[x];否則k←k+1,返回①…,直至p[n1]m為止。 var a,n,m,x ,k,i:integer; p,down,up:array[1maxn] of integer; begin readln(a,n,m,x); fillchar(p,sizeof(p),0); up[1]:=a;down[1] :=0;p[1] :=a; k:=1。在平面內(nèi)畫五條直線和一個圓,最多能把平面分成多少部分?,F(xiàn)將n本書全部取下然后再放回去,當(dāng)放回去時要求每本書都不能放在原來的位置上