pascal问题(与二维数组有关)1、蛇形排数(snake.pas/c/cpp)【问题描述】同学A遇到一个难题,要求是输入一个整数N,输出一个N行N列的方阵,方阵为蛇形数字组合.他想请你帮忙解决一下这个难题.
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/20 04:41:25
pascal问题(与二维数组有关)1、蛇形排数(snake.pas/c/cpp)【问题描述】同学A遇到一个难题,要求是输入一个整数N,输出一个N行N列的方阵,方阵为蛇形数字组合.他想请你帮忙解决一下这个难题.
pascal问题(与二维数组有关)
1、蛇形排数
(snake.pas/c/cpp)
【问题描述】
同学A遇到一个难题,要求是输入一个整数N,输出一个N行N列的方阵,方阵为蛇形数字组合.他想请你帮忙解决一下这个难题.
【输入文件】snake.in
一个整数,N.(2≤N≤20)
【输出文件】snake.out
N行N列,为输出的蛇形数字组合.各数字域宽为4.
【样例输入】
4
【样例输出】
10 11 12 1
9 16 13 2
8 15 14 3
7 6 5 4
2、设计程序,输出所有的数独形式(9*9)
注:数字相同,但方向不同,认为是不同形式
答出悬赏50
pascal问题(与二维数组有关)1、蛇形排数(snake.pas/c/cpp)【问题描述】同学A遇到一个难题,要求是输入一个整数N,输出一个N行N列的方阵,方阵为蛇形数字组合.他想请你帮忙解决一下这个难题.
const go:array[1..4,1..2]of longint=((0,1),(1,0),(0,-1),(-1,0));
var n,i,j:longint;
map:array[0..25,0..25]of longint;
used:array[0..25,0..25]of boolean;
procedure dfs(x,y,k,d:longint);
begin
if used[x,y] then exit;
used[x,y]:=true;
map[x,y]:=k;
if used[x+go[d,1],y+go[d,2]] then inc(d);
if d=5 then d:=1;
dfs(x+go[d,1],y+go[d,2],k+1,d)
end;
begin
readln(n);
fillchar(used,sizeof(used),true);
for i:=1 to n do
for j:=1 to n do used[i,j]:=false;
dfs(1,n,1,2);
for i:=1 to n do
begin
for j:=1 to n-1 do write(map[i,j],' ');
writeln(map[i,n]);
end;
end.