⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 no12.htm

📁 常用经典算法及讲解
💻 HTM
📖 第 1 页 / 共 5 页
字号:
<p class=MsoPlainText><span lang=EN-US>begin</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun: yes">&nbsp;</span>writeln('输入最大整数:'); readln(n);</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun: yes">&nbsp;</span>writeln('输入定和数:'); readln(m);</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun: yes">&nbsp;</span>s:=0;</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun: yes">&nbsp;</span>for i:=1 to n do s:=s+aa(i,m);</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun: yes">&nbsp;</span>writeln('计算结果:',s);</span></p><p class=MsoPlainText><span lang=EN-US>end.</span></p><p class=MsoPlainText><span lang=EN-US><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun: yes">&nbsp;</span>5. 设 D 为5行5列的方阵, 其元素表示为D(I,J), 每个D(I,J)皆是0--9中的</span></p><p class=MsoPlainText>某个数字<span lang=EN-US>,D(1,1)=r为已知. 试求满足以下条件的全部方阵 D:</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes">&nbsp;</span>(1) D 的每行,每列,每条对角线均为一个五位素数.</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes">&nbsp;</span>(2) 由键盘输入S, 上述各素数的各位数字之和均等于S.</span></p><p class=MsoPlainText><span lang=EN-US><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US>program<span style="mso-spacerun:yes">&nbsp; </span>lxw005; {素数矩阵}</span></p><p class=MsoPlainText><span lang=EN-US>const s:array [1..4] of integer=(1,3,7,9);</span></p><p class=MsoPlainText><span lang=EN-US>type arr2=array [0..50000] of boolean;</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp;&nbsp; </span>e5=array [1..5] of shortint;</span></p><p class=MsoPlainText><span lang=EN-US>var<span style="mso-spacerun:yes">&nbsp; </span>x: array [1..2] of ^arr2;</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp;&nbsp; </span>limit,k,k1,t,ss,tt,r,sum1:longint;</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp;&nbsp; </span>a1:array[1..1000] of e5;</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp;&nbsp; </span>d1:array[1..5] of e5;</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp;&nbsp; </span>g1,temp:e5;</span></p><p class=MsoPlainText><span lang=EN-US>procedure p2;forward;</span></p><p class=MsoPlainText><span lang=EN-US>procedure p3;forward;</span></p><p class=MsoPlainText><span lang=EN-US>procedure p4;forward;</span></p><p class=MsoPlainText><span lang=EN-US>procedure p5;forward;</span></p><p class=MsoPlainText><span lang=EN-US>procedure p6;forward;</span></p><p class=MsoPlainText><span lang=EN-US>procedure look(p, w:integer;st:e5;vartr:boolean);</span></p><p class=MsoPlainText><span lang=EN-US>{p=1:处理行,w:行号. p=2:处理列w:列号. 不处理对角线 }</span></p><p class=MsoPlainText><span lang=EN-US>label 10;</span></p><p class=MsoPlainText><span lang=EN-US>var i:integer;</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp; </span>j,k:shortint;</span></p><p class=MsoPlainText><span lang=EN-US>begin</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun: yes">&nbsp;</span>tr:=false;</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun: yes">&nbsp;</span>for i:=1 to tt do</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp; </span>begin</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>for j:=1 to 5 do<spanstyle="mso-spacerun: yes">&nbsp; </span>if a1[i,j]&lt;&gt;st[j] then goto 10;</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>case p of</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>1: for k:=1 to 5 dod1[w,k]:=st[k];</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>2: for k:=1 to 5 dod1[k,w]:=st[k];</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>end;</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>tr:=true; exit;</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes">&nbsp;&nbsp; </span>10:</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes">&nbsp;&nbsp; </span>end;</span></p><p class=MsoPlainText><span lang=EN-US>end;</span></p><p class=MsoPlainText><span lang=EN-US>function<span style="mso-spacerun:yes">&nbsp; </span>plac(ad:longint;i:integer):integer;</span></p><p class=MsoPlainText><span lang=EN-US>var</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun: yes">&nbsp;</span>pl2,sta:integer;</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun: yes">&nbsp;</span>ad2:string[5];</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun: yes">&nbsp;</span>ad3:string[1];</span></p><p class=MsoPlainText><span lang=EN-US>begin</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun: yes">&nbsp;</span>str(ad:5,ad2);<span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;</span>ad3:=copy(ad2,i,1);</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun: yes">&nbsp;</span>val(ad3,pl2,sta); <span style="mso-spacerun:yes">&nbsp;</span>plac:=pl2;</span></p><p class=MsoPlainText><span lang=EN-US>end;</span></p><p class=MsoPlainText><span lang=EN-US>procedureassign_g(a1,a2,a3,a4,a5:shortint);</span></p><p class=MsoPlainText><span lang=EN-US>begin</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun: yes">&nbsp;</span>g1[1]:=a1; g1[2]:=a2; g1[3]:=a3;<span style="mso-spacerun: yes">&nbsp;</span>g1[4]:=a4; g1[5]:=a5;</span></p><p class=MsoPlainText><span lang=EN-US>end;</span></p><p class=MsoPlainText><span lang=EN-US>procedure prim1;</span></p><p class=MsoPlainText><span lang=EN-US>{<span style="mso-spacerun: yes">&nbsp;</span>求 100000 以内的素数及取定和的五位素数 }</span></p><p class=MsoPlainText><span lang=EN-US>var i,j,t,t1,t2,t3,pr,ii:longint;</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp; </span>pl:e5;</span></p><p class=MsoPlainText><span lang=EN-US>begin{1}</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun: yes">&nbsp;</span>limit:=50000;</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun: yes">&nbsp;</span>for j:=1 to 2 do<span style="mso-spacerun: yes">&nbsp;</span>getmem(x[j],sizeof(x[j]^));</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun: yes">&nbsp;</span>for i:=1 to limit<span style="mso-spacerun: yes">&nbsp; </span>dox[1]^[i]:=true;</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun: yes">&nbsp;</span>x[2]^:=x[1]^;<span style="mso-spacerun: yes">&nbsp;&nbsp;</span>x[1]^[1]:=false;</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun: yes">&nbsp;</span>for i:=1 to round(sqrt(limit)) do</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp; </span>if x[1]^[i] then</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>begin{2}</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>t:=i;</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>t2:=limit div t;</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>for j:=2 to t2 dox[1]^[t*j]:=false;</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>t3:=2*limit div t;</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>for j:=t2+1 to t3 dox[2]^[j*t-limit]:=false;</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>end;{2}</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun: yes">&nbsp;</span>tt:=0;</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun: yes">&nbsp;</span>for j:=1 to 2 do</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp; </span>begin<span style="mso-spacerun: yes">&nbsp;</span>{3}</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>t:=10000;</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>if j=2 then t:=1;</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>for i:=t to limit do</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>if x[j]^[i] then</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>begin</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>ii:=i+(j-1)*limit;</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>for k:=1 to 5 do pl[k]:=plac(ii,k);</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>if pl[1]+pl[2]+pl[3]+pl[4]+pl[5]=sum1 then</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><spanstyle="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;</span>begin inc(tt);a1[tt]:=pl; end;</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>end;</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp; </span>end; {3}</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun: yes">&nbsp;</span>writeln('tt=',tt);</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun: yes">&nbsp;</span>for j:=1 to 2 do<span style="mso-spacerun: yes">&nbsp;</span>freemem(x[j],sizeof(x[j]^));</span></p><p class=MsoPlainText><span lang=EN-US>end;{1}</span></p><p class=MsoPlainText><span lang=EN-US>procedure p1; { 第 1 行 }</span></p><p class=MsoPlainText><span lang=EN-US>var i,j:integer;</span></p><p class=MsoPlainText><span lang=EN-US>begin{3}</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun: yes">&nbsp;</span>d1[1,1]:=r;</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun: yes">&nbsp;</span>for j:=1 to tt do</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp; </span>if (a1[j,1]=r) then</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="mso-spacerun:yes">&nbsp;</span>begin{5}</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>temp:=a1[j];</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>d1[1,2]:=temp[2];<spanstyle="mso-spacerun: yes">&nbsp; </span>d1[1,3]:=temp[3];</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>d1[1,4]:=temp[4];<spanstyle="mso-spacerun: yes">&nbsp; </span>d1[1,5]:=temp[5];</span></p><p class=MsoPlainText><span lang=EN-US><span style="mso-spacerun:yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>p2;</span></p>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -