n阶杨辉三角pascal程序怎么设计?
programp7_9a(input,output);vara:array[1..7,1..13]ofinteger;i,j,k:integer;beginfori:=1...
program p7_9a(input,output);
var
a:array[1..7,1..13] of integer;
i,j,k:integer;
begin
for i:=1 to 7 do
begin
for j:=1 to 13 do
a[i,j]:=0;
a[i,7-(i-1)]:=1;
a[i,7+(i-1)]:=1;
for k:=1 to i-2 do
begin
j:=7-(i-1)+2*k;
a[i,j]:=a[i-1,j-1]+a[i-1,j+1];
end;
for j:=1 to 13 do
if a[i,j]=0 then
write(' ')
else
write(a[i,j]:2);
writeln;
end;
readln;
end.
把如上一个7阶杨辉三角改为n阶的,怎么改?
in川你好,你的程序我在TP7中运行不了。 展开
var
a:array[1..7,1..13] of integer;
i,j,k:integer;
begin
for i:=1 to 7 do
begin
for j:=1 to 13 do
a[i,j]:=0;
a[i,7-(i-1)]:=1;
a[i,7+(i-1)]:=1;
for k:=1 to i-2 do
begin
j:=7-(i-1)+2*k;
a[i,j]:=a[i-1,j-1]+a[i-1,j+1];
end;
for j:=1 to 13 do
if a[i,j]=0 then
write(' ')
else
write(a[i,j]:2);
writeln;
end;
readln;
end.
把如上一个7阶杨辉三角改为n阶的,怎么改?
in川你好,你的程序我在TP7中运行不了。 展开
4个回答
展开全部
program ex;
var i,j,l,m,n:longint;
a,b:array[0..10000] of longint;
begin
assign(output,'yanghui.txt');
rewrite(output);
fillchar(a,sizeof(a),0);
fillchar(b,sizeof(b),0);
readln(n);
a[1]:=1;
for i:=1 to n do
begin
for j:=1 to i do
begin
b[j]:=a[j]+a[j-1];
end;
for j:=1 to n-i do
write(' ');
for j:=1 to i do
write(b[j],' ');
writeln;
a:=b;
end;
close(output);
end.
我自己写的...自己看吧
var i,j,l,m,n:longint;
a,b:array[0..10000] of longint;
begin
assign(output,'yanghui.txt');
rewrite(output);
fillchar(a,sizeof(a),0);
fillchar(b,sizeof(b),0);
readln(n);
a[1]:=1;
for i:=1 to n do
begin
for j:=1 to i do
begin
b[j]:=a[j]+a[j-1];
end;
for j:=1 to n-i do
write(' ');
for j:=1 to i do
write(b[j],' ');
writeln;
a:=b;
end;
close(output);
end.
我自己写的...自己看吧
展开全部
不难嘛
上面的程序有局限性
in川的程序思路正确
不过数组的数据范围太小了
下面是in川的程序改编:
program yanghui;
var i,j,m,n:longint;
a,b:array[0..1000] of int64;{这里无法到达10000,而且类型无法支持太大的数,所以范围改成1000,类型int64 -2^63 (-9,223,372,036,854,775,808)~2^63-1 (9,223,372,036,854,775,807)}
begin
assign(output,'yanghui.txt');
rewrite(output);
fillchar(a,sizeof(a),0);
fillchar(b,sizeof(b),0);
readln(n);
a[1]:=1;
for i:=1 to n do
begin
for j:=1 to i do
b[j]:=a[j]+a[j-1];
for j:=1 to n-i do
write(' ');
for j:=1 to i do
write(b[j],' ');
writeln;
a:=b;
end;
close(output);
end.
如果是编译错误
请lz用lazarus
上面的程序有局限性
in川的程序思路正确
不过数组的数据范围太小了
下面是in川的程序改编:
program yanghui;
var i,j,m,n:longint;
a,b:array[0..1000] of int64;{这里无法到达10000,而且类型无法支持太大的数,所以范围改成1000,类型int64 -2^63 (-9,223,372,036,854,775,808)~2^63-1 (9,223,372,036,854,775,807)}
begin
assign(output,'yanghui.txt');
rewrite(output);
fillchar(a,sizeof(a),0);
fillchar(b,sizeof(b),0);
readln(n);
a[1]:=1;
for i:=1 to n do
begin
for j:=1 to i do
b[j]:=a[j]+a[j-1];
for j:=1 to n-i do
write(' ');
for j:=1 to i do
write(b[j],' ');
writeln;
a:=b;
end;
close(output);
end.
如果是编译错误
请lz用lazarus
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
var
a:array[1..100,1..100]of integer;
n,i,j:integer;
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-1 do
write(a[i,j],' ');
writeln(a[i,i]);
end;
end.
这是我的程序,在网上也是对的。给我分吧。另外in川的程序是利用文本文件输出。
a:array[1..100,1..100]of integer;
n,i,j:integer;
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-1 do
write(a[i,j],' ');
writeln(a[i,i]);
end;
end.
这是我的程序,在网上也是对的。给我分吧。另外in川的程序是利用文本文件输出。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询