Pascal 输出蛇状漩涡

来源:百度知道 编辑:UC知道 时间:2024/05/31 09:06:37
求turbo Pascal 代码
要求输入5,定义为变量a
输出
***** {横排5个}
* {向下竖排5-1个}
* * {向左横排5-1-1个} 循环a-1此
*** {向上竖排5-1-1-1个}

输入8则
输出
******** {横排8个}
* {向下竖排8-1个}
**** * {向左横排8-1-1个} 循环a-1 次
* * * {向上竖排8-1-1-1个}
* ** * {……}
* *
******
我已想出一些方法,作为提示
1、用N维数组解决
2、有N个for循环,N个begin
3、在二维数组中,按向右向下向左向上……的顺序,最后一个行数一列数相同
4、二维数组输入8,则11、12、13、14、15、16、17、18、28、38、48、58、68、78、77、76、75、74、73、63、53、43、33、34、35、36、46、56、55有‘*’
漩涡图错了,是
求turbo Pascal 代码
要求输入5,定义为变量a
输出
*****
----*
--*-*
--***

输入8则
输出
********
-------*
--****-*
--*--*-*
--*-**-*
--*----*
--******
可能由于空间关系吧,我打的空格不见了,现在用-表示一个空格,--表示两个,---表示三个,----表示四个……
“你以为我们是傻子啊!”

label 1;
var
t:array[1..100,1..100] of integer;
a,i,j,f,x,y:integer;
begin
1:
write('qing shu ru yi ge shu:');
readln(a);
if a>100 then
begin
writeln('tai da le!!');
readln;
goto 1;
end;
f:=0;x:=1;y:=1;
t[1,1]:=1;
for i:=a-1 downto 1 do
begin
inc(f);
for j:=1 to i do
begin
case (f mod 4) of
1:inc(x);
2:inc(y);
3:dec(x);
0:dec(y);
end;
t[x,y]:=1;
end;
end;
for j:=1 to a do
begin
for i:=1 to a do
if t[i,j]<>1 then write(' ') else write('*');
writeln;
end;
readln;
readln;
end.

数据范围小的话
直接模拟就可以了
数据范围大的话
就需要数学方法了

最好来个样例说明