PASCAL数字图形输出

来源:百度知道 编辑:UC知道 时间:2024/05/26 11:31:21
输入N,输出对应的数字图形,如N=10,输出:
1
2 3
4 5 6
7 8 9 10
N=25,输出:
1
2 3
4 5 6
7 8 9 10
11 12 13 14 15
16 17 18 19 20 21
22 23 24 25
数字图形是靠右对齐排列的,不是居中排列,即是直角三角形形状。

以下两位老兄的回答还是不能满足题目要求。请注意是右对齐,我没有把例题排列好。

readln(n);
k:=0;i:=0;j:=0;
while k<=n do
begin
inc(i);
for j:=1 to i do
begin
inc(k);
write(k);
if j<>i
then write(' ');
if k>n
then break;
end;
writeln;
if k>n
then break;
end;

我这个肯定好使,我有试过
var
m,n,c,d,i:longint;
a:array[1..25,1..25] of longint;
begin
i:=0;
readln(n);
m:=trunc(sqrt(2*n));
for c:=1 to m do
for d:=1 to c do
begin
inc(i);
if i>n then break;
a[c,d]:=i;
end;
for c:=1 to m do
begin
for d:=1 to m-c do write('':3);
for d:=1 to c do if a[c,d]<>0 then write(a[c,d]:3);
writeln;
end;
end.

var
i,a,l,s:longint;
begin
readln(a);
for i:=1 to a do
begin
for l:=1 to i do
begin
s:=s+1;
if s>