主题:我很笨能不能幫我寫
jk02172899
[专家分:0] 发布于 2010-02-09 21:58:00
輸入4
出
1
11
121
1331
14641
回复列表 (共2个回复)
沙发
zihao1231 [专家分:150] 发布于 2010-02-12 00:07:00
就是杨辉三角
1
|\
1 1
|\|\
1 2 1
|\|\|\
1 3 3 1
由此得出,第i行第j列=前一行的前一列+前一行的本列。
而每行的第一和最后都是1。
得出公式:a[i,j]:=a[i-1,j-1]+a[i-1,j];
程序:
program yhsanjiao
var
a:array[1..100,1..100] of integer;
i,j,n:integr;
begin
readln(n);
for i:=1 to n do
begin
a[i,1]:=1;
a[i,i]:=1;
for j:=2 to i-1 do
a[i,j]:=a[i-1,j-1]+a[i-1,j];
end;
for i:=1 to n do
begin
for j:=1 to i do
write(a[i,j]);
end;
end.
由于每次只用到了前一行程序可优化成:
program yhsanjiao
var
a:array[1..10000] of integer;
i,j,n:integr;
begin
readln(n);
for i:=1 to n do
begin
a[1]:=1;
a[i]:=1;
for j:=i-1 downto 2 do
a[i]:=a[i-1]+a[i];
for j:=1 to i do
write(a[j]);
writeln;
end;
end.
板凳
chip [专家分:80] 发布于 2010-08-06 13:05:00
杨辉啊!递归就行了!
我来回复