主题:杨辉三角怎么编
dieroad
[专家分:80] 发布于 2005-08-18 11:09:00
输入一个值n,列出图形
回复列表 (共7个回复)
沙发
菜鸟种菜 [专家分:50] 发布于 2005-08-18 11:12:00
program TJU1008(input,output);
var z:array[1..34,1..34]of longint;
i,j:integer;
n:integer;
s:integer;
begin
z[1,1]:=1;
z[2,1]:=1;
z[2,2]:=1;
for i:=3 to 34 do
for j:=1 to i do
z[i,j]:=z[i-1,j-1]+z[i-1,j];
s:=0;
while not seekeof(input)do
begin
read(n);
s:=s+1;
if s>1 then
writeln;
write('Case ',s,':');
writeln;
for i:=1 to n do begin
for j:=1 to i do
if j<>i then
write(z[i,j],' ')
else
write(z[i,j]);
writeln;
end;
end;
end.
TJU的一道题 和你问的很类似
自己去改
板凳
dieroad [专家分:80] 发布于 2005-08-18 11:15:00
while not seekeof(input)do
[em7][em7]这句不懂,谢谢了
3 楼
口口and枕头 [专家分:1550] 发布于 2005-08-18 15:11:00
while输入结束do(以前别人告诉我的,也不知道是不是这么回事~)
不过我也不懂,这个函数是怎么判断结束的~
哪位能请说明一下,输入时,怎么输它才会认为以经输入结束了~
4 楼
口口and枕头 [专家分:1550] 发布于 2005-08-18 15:16:00
z[i,j]:=z[i-1,j-1]+z[i-1,j];//这句有问题吧~
我觉得应该是z[i,j]:=z[i-1,j+1]+z[i-1,j];
5 楼
菜鸟种菜 [专家分:50] 发布于 2005-08-18 20:23:00
同意楼上对while not seekeof(input) do 的解释;具体原理不详。 这个程序应该是没有问题的( 不过和正规的杨辉三角有些出入,运行出的是直角三角形,可作修该),z[i,j]等于它“肩头”两个数的和,在直角三角形中,他肩头的两数分别为z[i-1,j-1],z[i-1,j] 运行结果为 1
1 1
1 2 1
1 3 3 1
……
[em6]
6 楼
口口and枕头 [专家分:1550] 发布于 2005-08-18 21:45:00
哦~~~~~对哟~~同意同意~
7 楼
dieroad [专家分:80] 发布于 2005-08-19 10:34:00
1
11
121
1331
可以在前面输‘ ’
每换一行
如:h=20;
for i:=1 to n do
.........( 中间程序省略)
write(' ':h-i*2);
每次向前几个空格
1
1 1
1 2 1
。。。。。。。。。。。。。
我来回复