pascal 回形正方矩陣

2025-01-24 15:25:14 字數 4402 閱讀 9649

1樓:網友

給你個最簡單易懂的思路:

4種方向的走法,向下,斜向上,向右,斜向下。

k為走的方向

最後輸出的時候變化x,y的位置會改變蛇行輸出的方向你也可以試下。

知道了上面的規則你就可以記住了。

program sx;

varsz:array[1..20,1..20] of integer;

x,y,i,n,k:integer;

beginreadln(n);

for x:=1 to n do

for y:=1 to n do

sz[x,y]:=0;

x:=1;y:=1;

sz[x,y]:=1;

k:=1;for i:=2 to n*n dobeginif k=1 then

beginy:=y+1;

if x=n then k:=4 else k:=2;

endelse if k=2 then

beginx:=x+1;

y:=y-1;

if x=n then

k:=1else if y=1 then

k:=3;end

else if k=3 then

beginx:=x+1;

if y=n then k:=2 else k:=4;

endelse if k=4 then

beginx:=x-1;

y:=y+1;

if y=n then

k:=3else if x=1 then

k:=1;end;

sz[x,y]:=i;

end;for y:=1 to n do

beginfor x:=1 to n dowrite(sz[x,y]:4);

writeln;

end;readln;

end.

2樓:網友

前面兩個很好啊,我不說了, 這是蛇形方陣 ,可以由n個迴圈構成。

pascal 最大子矩陣

3樓:網友

浙江省選的棋盤製作問題,你可以去看看**什麼的,07年省選題,用所謂的懸線法左右掃瞄,這個方法同樣可以求最大正方形,規模可以達到1000*1000的陣列。

4樓:喜揚揚

n^3就可以了 ,主要利用降維的思想。給分哦!

var a:array[0..500,0..500]of longint;

f,e:array[0..500]of longint;

n,m,i,j,k,ans,l:longint;

beginreadln(n, m); ans:=-maxlongint;

for i:=1 to n do

for j:=1 to m do

read(a[i, j]);

for i:=1 to m-1 do

for j:=i to m do

beginfillchar(f,sizeof(f),0);fillchar(e,sizeof(e),0);

for k:=1 to n do

for l:=i to j do inc(e[k],a[k,l]);

for k:=1 to n do

beginf[k]:=e[k];

if f[k]ans then ans:=f[k];

end;end;

writeln('max=',ans);

end.

5樓:網友

o(n^3)足夠了。

最最基礎的dp

返回矩陣 pascal

6樓:網友

海,你想要去的,你可以參考別人的答案。

7樓:匿名使用者

海,你自己想去,可參考別人的答案。

pascal二維陣列

8樓:網友

這是我編的。

var i,j:integer;

a:array[1..5] of integer;

beginfillchar(a,sizeof,1);

for i:=1 to 5 do

beginfor j:=i+1 to 5 do a[j]:=a[i];

for j:=1 to 5 do write(a[j]);

writeln;

end;end.

希望你能滿意!

pascal二維陣列——急!!!

9樓:網友

這是螺旋方陣啊。

下面的程式是輸出n行n列的螺旋方陣,每個數字佔4個字元的位置。

var i,j,n,k:integer;

a:array[1..100,1..100] of integer;

beginreadln(n);

k:=1;if odd(n) then a[n div 2+1,n div 2+1]:=sqr(n);

for i:=1 to n do beginfor j:=i to n-i do begina[i,j]:=k;inc(k);

end;for j:=i to n-i do begina[j,n+1-i]:=k;inc(k);

end;for j:=n+1-i downto i+1 do begin

a[n+1-i,j]:=k;inc(k);

end;for j:=n+1-i downto i+1 do begin

a[j,i]:=k;inc(k);

end;end;

for i:=1 to n do beginfor j:=1 to n do write(a[i,j]:4);

writeln;

end;end.

二維陣列pascal

10樓:網友

var a:array[1..7,1..7]of integer;

i,j,k,s:integer;

程式分別是:

beginfor i:=1 to 4 do

a[i,1]:=i;

for i:=1 to 4 do

beginfor j:=1 to 4 do

write(a[i,j],'

writeln;

end;end.

beginfor i:=1 to 4 do

for j:=1 to 3 do

a[i,j]:=j;

for i:=1 to 4 do

beginfor j:=1 to 3 do

write(a[i,j]);

writeln;

end;end.

beginfor i:=1 to 3 do

a[1,i]:=i;

for i:=2 to 4 do

for j:=1 to 3 do

a[i,j]:=a[i-1,j]+3;

for i:=1 to 4 do

beginfor j:=1 to 4 do

write(a[i,j]);

writeln;

end;end.

beginfor i:=1 to 5 do

a[1,i]:=i;

for i:=2 to 5 do

for j:=1 to 5 do

if a[i-1,j]<5 then

a[i,j]:=a[i-1,j]+1

else a[i,j]:=1;

for i:=1 to 5 do

beginfor j:=1 to 5 do

write(a[i,j]);

writeln;

end;end.

beginfor i:=1 to 5 do

for j:=1 to 5 do

a[i,j]:=j;

for i:=1 to 5 do

beginfor j:=1 to i do

write(a[i,j]);

writeln;

end;end.

begins:=0;k:=6;

for i:=1 to 5 do

begindec(k);

for j:=1 to k do

inc(s);

a[i,j]:=s;

end;k:=6;

for i:=1 to 5 do

begindec(k);

for j:=1 to k do

write(a[i,j]);

writeln;

end;end.

7:noip_1995的題目。

8:sorry公尺時間了。

行最簡形矩陣與最簡形矩陣區別,最簡形矩陣與標準形矩陣的區別是什麼

行最簡形矩bai陣定義 在矩陣中可畫出一 du條階梯線,線的下方zhi全為0,每個臺階只dao有一行,臺階數即回是非零答行的行數,階梯線的豎線 每段豎線的長度為一行 後面的第一個元素為非零元,也就是非零行的第一個非零元,則稱該矩陣為行階梯矩陣。若非零行的第一個非零元為都為1,且這些非零元所在的列的其...

正方形 三角形35,圓形 三角形21,圓形 正方形26,求圓形 正方形 三角形各是多少

設正方形為x.三角形為y.圓形為z x y 35 x z 26 y z 21 解得x 20 y 15z 6 設正方形為x 三角形為y 圓形為z 得三元一次方程 x y 35 z y 21 x z 26 解這個方程得 x 20 y 15 z 6 他們說的好麻煩copy,給你說個簡單的。你說的三bai個...

怎麼將矩陣化為行標準形,將矩陣化為標準型

一句話就是消元。來。從源 第一個主元 第一列 開bai始,先把第一du行的第一個元素化成zhi1,然後其他行依次減dao去它的n倍。這樣第一列就變成了1,0,0.然後將第二行第二個元素化成1,其他行減去它的n倍。以此類推。最後將 非0主元上的元素都化成0.將矩陣化為標準型 行列同時使用抄 應該比較快...