主题:小学题,用PASCAL难哪
tujunqiang
[专家分:150] 发布于 2005-11-02 14:50:00
打印数字三角形:
从键盘读入数字三角形层数L,(1<=L<=24), 按下图规律在屏幕上输出数字三角形。每个数字所占宽度不作严格要求,但要求: 1.全部输出必须在一屏之内,不能滚屏; 2.不同数字间至少空一格; 3.编程解决此问题,不能直接打印输出答案。
例: L=3 L=5
1 1
2 6 2 12
3 4 5 3 13 11
4 14 15 10
5 6 7 8 9
回复列表 (共11个回复)
沙发
幽游の白玉 [专家分:140] 发布于 2005-11-02 19:33:00
小学题目就这样`~~~郁闷``~哪个小学生那么铁`~做的出来`~偶顶他(她)@@@@~~~~!@@!!
板凳
幽游の白玉 [专家分:140] 发布于 2005-11-02 20:11:00
program sanjiao;
var i,j,k,n,f:integer;
g:longint;
a,b:array[1..100,1..100]of integer;
begin
writeln('input in lou shu:');
readln(n);
k:=1;
f:=1;
g:=n*n;
for i:=1 to n do
for j:=1 to i do a[i,j]:=g;
i:=0;
j:=1;
while k<=n*(n+1)/2 do
begin
case f of
1:begin inc(i);a[i,j]:=k;inc(k);if a[i+1,j]<>g then f:=2;end;
2:begin inc(j);a[i,j]:=k;inc(k);if a[i,j+1]<>g then f:=3;end;
3:begin dec(i);dec(j);a[i,j]:=k;inc(k);if a[i-1,j-1]<>g then f:=1;end;
end;
end;
for i:=1 to n do
begin
write('':n-i+1);
for j:=1 to i do
begin
write(a[i,j]:4);
end;
writeln;
end;
readln;
end.
小子不才`~~~~!~~~用的方法很烦 大家不要介意呀`~~~随便看看啦~~~ 楼主加分``给我点成就感~~嘿嘿~
3 楼
tujunqiang [专家分:150] 发布于 2005-11-02 22:48:00
您忘了说明三角形边长的范围吧[em12]
4 楼
479686 [专家分:150] 发布于 2005-11-04 23:43:00
二维数组 可以解决
5 楼
梦幻神兵 [专家分:600] 发布于 2005-11-12 16:52:00
建议:用数组比较快!
6 楼
无敌傻仔 [专家分:210] 发布于 2005-11-14 16:54:00
说得没错
7 楼
小虾虾 [专家分:300] 发布于 2005-11-16 14:52:00
var
i,j,l,p,q,s,t:integer;
a:array[1..100,1..100] of integer;
begin
readln(l);
s:=0;p:=0;q:=1;
for i:=1 to l do
for j:=1 to l-i+1 do
begin
if i mod 3=1 then p:=p+1;
if i mod 3=2 then q:=q+1;
if i mod 3=0 then begin p:=p-1; q:=q-1; end;
inc(s);
a[p,q]:=s;
end;
t:=l+1;
for i:=1 to l do
begin
write(a[i,1]:t-i);
for j:=2 to i do
begin
write(a[i,j]:3);
end;
writeln;
end;
end.
[em9][em9][em9][em9][em9][em9][em9][em9]
8 楼
MagicTang [专家分:0] 发布于 2005-12-14 19:28:00
这是小学生做的吗
9 楼
w75317 [专家分:530] 发布于 2009-04-08 17:28:00
[em18]谢了,你的程序,谁还有讲解的——学编程的小学生[em18]
10 楼
小令00 [专家分:1040] 发布于 2009-04-23 07:19:00
用递归写怎么样?
我来回复