回 帖 发 新 帖 刷新版面

主题:我很笨能不能幫我寫

輸入4




11
121     
1331     
14641 

回复列表 (共2个回复)

沙发

就是杨辉三角
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.

板凳

杨辉啊!递归就行了!

我来回复

您尚未登录,请登录后再回复。点此登录或注册