PASCAL杨辉三角问题

来源:百度知道 编辑:UC知道 时间:2024/05/22 00:37:03
用数组打印杨辉三角(yh[i,j]),书上最后输出时说:
write('':40-3*i)
for j:=1to i do write(yh[i,j]:6)
writeln

这段话是什么意思?详细点说明。谢谢!
program asd(input,output);
var
a:array[1..10,1..10]of integer;
i,j:integer;
begin
for i:=1to 10do
for j:=1to 10do
begin
a[i,1]:=1;
if i=j then a[i,j]:=1;
if a[i,j]<>1 then a[i,j]:=a[i-1,j-1]+a[i-1,j];
end;
for i:=1to 10do
begin
write('':40-3*i);
for j:=1to i do
write(a[i,j]:6);
writeln;
end;
end.

我知道了
你这是规定了数值的三角吧?就是山顶是1的吧;
然后山坡和山腰都是1,怪不得我看不懂咧。
这个程序是把杨辉三角形按正规的方式输出了,
write('':40-3*i);是每一行前面空格的长度,就是空格的场宽,后面a[i,j]:6就是每个数字的场宽,就是每个数字后面多出的空格是多少,这样看上去杨辉三角形就正规了,很多程序都把三角形打成直角三角形了。主要那些空格要计算过,冒号后面就是场宽,意思就是:包括输出的内容,整个输出的东西站的位置是多少