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.將矩陣化為標準型 行列同時使用抄 應該比較快...