主题:杨辉三角形
晶星
[专家分:370] 发布于 2003-09-29 18:18:00
杨辉三角形的算法,大家各抒己见!
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个回复)
沙发
晶星 [专家分:370] 发布于 2003-09-30 12:44:00
小弟虽是初学,也不要这么不屑一顾嘛!
板凳
jtchang [专家分:5370] 发布于 2003-09-30 22:43:00
--------------------------------
说得不错!!!!!!!!
--------------------------------
3 楼
pkkj [专家分:90] 发布于 2003-10-23 21:24:00
复杂一点没所谓。将 writeln(1:5);
for i:=1 to 5 do
begin
中的I改大一点,再在 end;
end.
中加上READLN,那就更完美了。
4 楼
刘川枫 [专家分:510] 发布于 2004-09-18 20:59:00
第六行有两位数,若不说明场宽,输出时就会出现问题。
5 楼
hy890923 [专家分:30] 发布于 2004-09-18 21:34:00
杨辉三角的每一个数都等于上面两个相邻数的和。
看我做的题,(首先输入行数);
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 楼
梦紫佳 [专家分:0] 发布于 2005-07-29 13:46:00
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 楼
zlwsdy [专家分:0] 发布于 2006-02-05 21:11:00
可惜,算不了多少行...
8 楼
贺天行宝 [专家分:2300] 发布于 2006-02-07 09:38:00
反对7楼!
把两维数组改大就行了
我写的和6楼的一样
自己画画就出来了阿
我来回复