回 帖 发 新 帖 刷新版面

主题:杨辉三角怎么编

输入一个值n,列出图形

回复列表 (共7个回复)

沙发

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的一道题 和你问的很类似
自己去改

板凳

while not seekeof(input)do
[em7][em7]这句不懂,谢谢了

3 楼

while输入结束do(以前别人告诉我的,也不知道是不是这么回事~)
不过我也不懂,这个函数是怎么判断结束的~
哪位能请说明一下,输入时,怎么输它才会认为以经输入结束了~

4 楼

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 楼

同意楼上对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 楼

哦~~~~~对哟~~同意同意~

7 楼

1
11
121
1331
可以在前面输‘ ’
每换一行
如:h=20;
  for i:=1 to n do
.........( 中间程序省略)
write(' ':h-i*2);
  每次向前几个空格
               1
              1 1
             1 2 1
。。。。。。。。。。。。。

我来回复

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