回 帖 发 新 帖 刷新版面

主题:杨辉三角形

杨辉三角形的算法,大家各抒己见!


program ex;
var
   a,b,c:integer;
   d:array[1..20]of integer;
begin
     writeln('1');
     d[1]:=1;
     for a:=1 to 6 do
     begin
     for b:=a downto 1 do
     begin
          d[b]:=d[b]+d[b-1];
          write(d[b],' ');
     end;
     writeln;
     end;
     readln
end.

还有更简单的,但我不懂。

回复列表 (共8个回复)

沙发

小弟虽是初学,也不要这么不屑一顾嘛!

板凳

--------------------------------
说得不错!!!!!!!!
--------------------------------

3 楼

复杂一点没所谓。将 writeln(1:5);
  for i:=1 to 5 do
   begin
中的I改大一点,再在 end;
end.
中加上READLN,那就更完美了。

4 楼

第六行有两位数,若不说明场宽,输出时就会出现问题。

5 楼

杨辉三角的每一个数都等于上面两个相邻数的和。
看我做的题,(首先输入行数);
var
   a,b,c,n:integer;
   d:array[0..100,0..100]of integer;
begin
     read(n);
     d[0,1]:=1;
     for a:=1 to n do
     begin
     for b:=1 to a do
     begin
      d[a,b]:=d[a-1,b-1]+d[a-1,b];
      if b=1 then write(d[a,b]:n) else write(d[a,b]:2);
     end;
      n:=n-1;
      writeln;
     end;
end.

6 楼

program yanghui;
var yh:array[1..10,1..10] of integer;
i,j:integer;
begin
yh[1,1]:=1;
for i:=2 to 10 do
begin
yh[i,1]:=1;yh[i,i]:=1;
for j:=2 to i-1 do
yh[i,j]:=yh[i-1,j-1]+yh[i-1,j];
end;
writeln('Yang Hui:');
for i:=1 to 10 do
begin
write('':40-3*i);
for j:=1 to i do write(yh[i,j]:6);
writeln;
end;
end.


program yanghui;
var yh:array[1..10,1..10] of integer;
i,j:integer;
begin
yh[1,1]:=1;
for i:=2 to 10 do
begin
yh[i,1]:=1;yh[i,i]:=1;
for j:=2 to i-1 do
yh[i,j]:=yh[i-1,j-1]+yh[i-1,j];
end;
writeln('Yang Hui:');
for i:=1 to 10 do
begin
write('');
for j:=1 to i do write(yh[i,j]:6);
writeln;
end;
end.

第一个是常规形状,第二个是直角三角形的形状。


7 楼

可惜,算不了多少行...

8 楼

反对7楼!
把两维数组改大就行了
我写的和6楼的一样
自己画画就出来了阿

我来回复

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