主题:我很笨能不能幫我寫
			 jk02172899
				 [专家分:0]  发布于 2010-02-09 21:58:00
 jk02172899
				 [专家分:0]  发布于 2010-02-09 21:58:00							
			輸入4
出
1
11
121     
1331     
14641 
						
					 
		
			
回复列表 (共2个回复)
		
								
				沙发
				
					 zihao1231 [专家分:150]  发布于 2010-02-12 00:07:00
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
chip [专家分:80]  发布于 2010-08-06 13:05:00				
				杨辉啊!递归就行了!
							 
									
			
我来回复