用pascal输出语句编写下列图形程序 1 121 12321 1234321

1 121 12321 1234321小学难度
2024-12-13 04:55:03
推荐回答(5个)
回答1:

方法一:当输入的数据不超过10的时候(因为超过10的话结果不一样了),可以用这样的方法实现:

var s:lint64;

      i,n:integer;

    begin

     readln(n);

     s:=0;

     for i:=1 to n do

        begin

          s:=s*10+1;

          writeln(' ':n-i+1,s*s);

        end;

   end.

回答2:

方法一:
program x1;
var i,n,s:integer;
begin
readln(n);
s:=0;
for i:=1 to n do
begin
s:=s*10+1;
writeln(' ':n-i+1,s*s);
end;
end.
如果n≤9,这样就行了。。。
方法二:
program x2;
var
i,j,n,sn:integer;
s:string;
begin
readln(n);
str(n,s);
sn:=length(s)+1;
s:=' '; //这里是两个空格
for i:=1 to sn-2 do
s:=s+ ' ';//这里是一个空格
for i:=1 to n do
begin
for j:=1 to n-i do
write(s);
for j:=1 to i do
write(j:sn);
for j:=i-1 downto 1 do
write(j:sn);
writeln;
end;
readln;
end.
当n≥10时,这样应该就可以了(为了好看,我改了一下数字间的间隔)。。。。

回答3:

program aaa;
var
n,i,j:longint;
begin
readln(n);
for i:=1 to n do
begin
write(' ':n-i+1);
for j:=1 to i do
write(j);
for j:=i-1 downto 1 do
write(j);
writeln;
end;
readln;
readln;
end.

n可以是任何一个小于maxlongint的数,但由于数一旦超过9,数位就发生了变化,效果就不够好了。

回答4:

for i:=1 to 4 do
begin
for j:=1 to 5-i do write(' ');
for j:=1 to i do write(j);
for j:=i-1 downto 1 do write(j);
end;
我没有编译,大概是这个样子吧,纯模拟,小学难度?

回答5:

program xx(input,output);
begin
writeln(' 1');
writeln(' 121');
writeln(' 12321');
writeln('1234321');
readln;
end.