杨辉三角形pascal问题 20
杨辉三角形也叫贾宪三角形,西方叫帕斯卡三角形,其实就是各阶二项式系数排列起来构成的三角形,如下。每行的数字实际上是(a+b)^n展开后的各项系数。如下图为杨辉三角的前5行...
杨辉三角形也叫贾宪三角形,西方叫帕斯卡三角形,其实就是各阶二项式系数排列起来构成的三角形,如下。每行的数字实际上是(a
+ b) ^ n展开后的各项系数。如下图为杨辉三角的前5行。
1
1 1
1 2 1
1 3 3 1
1 4 6
4 1
历史上发现这个三角形的人很多,这里介绍几个主要的,北宋人贾宪约1050年首先使用“贾宪三角”进行高次开方运算。杨辉,字谦光,南宋时期杭州人。在他1261年所著的《详解九章算法》一书中,辑录了如上所示的三角形数表,称之为“开方作法本源”图。欧洲直到1623年以后,法国数学家帕斯卡在13岁时发现了“帕斯卡三角”。
现在,请你编程输出杨辉三角形的前N行。
输入
输入只有一行,为一个不大于20的正整数N。
输出
输出杨辉三角形的前N行。每一行相邻两个整数之间只有一个空格,最后一个数之后没有多余的空格。
样例输入
5
样例输出
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
这是我的过程:
program p1031;
var
a:array[1..100,1..100]of integer;
i,j,n:integer;
begin
readln(n);
for i:=1 to 20 do
for j:=1 to 20 do
a[i,j]:=0;
for i:=1 to n do begin
a[i,1]:=1;
a[i,i]:=1;
end;
for i:=3 to n do
for j:=2 to i-1 do
a[i,j]:=a[i-1,j]+a[i-1,j-1];
for i:=1 to n-1 do
for j:=1 to i do
if i<>j then write(a[i,j],' ')
else writeln(a[i,j]);
for j:=1 to n-1 do
write (a[n,j],' ');
write(a[n,j+1]);
end.
在线评测系统显示我错,求指教哪里错了 展开
+ b) ^ n展开后的各项系数。如下图为杨辉三角的前5行。
1
1 1
1 2 1
1 3 3 1
1 4 6
4 1
历史上发现这个三角形的人很多,这里介绍几个主要的,北宋人贾宪约1050年首先使用“贾宪三角”进行高次开方运算。杨辉,字谦光,南宋时期杭州人。在他1261年所著的《详解九章算法》一书中,辑录了如上所示的三角形数表,称之为“开方作法本源”图。欧洲直到1623年以后,法国数学家帕斯卡在13岁时发现了“帕斯卡三角”。
现在,请你编程输出杨辉三角形的前N行。
输入
输入只有一行,为一个不大于20的正整数N。
输出
输出杨辉三角形的前N行。每一行相邻两个整数之间只有一个空格,最后一个数之后没有多余的空格。
样例输入
5
样例输出
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
这是我的过程:
program p1031;
var
a:array[1..100,1..100]of integer;
i,j,n:integer;
begin
readln(n);
for i:=1 to 20 do
for j:=1 to 20 do
a[i,j]:=0;
for i:=1 to n do begin
a[i,1]:=1;
a[i,i]:=1;
end;
for i:=3 to n do
for j:=2 to i-1 do
a[i,j]:=a[i-1,j]+a[i-1,j-1];
for i:=1 to n-1 do
for j:=1 to i do
if i<>j then write(a[i,j],' ')
else writeln(a[i,j]);
for j:=1 to n-1 do
write (a[n,j],' ');
write(a[n,j+1]);
end.
在线评测系统显示我错,求指教哪里错了 展开
展开全部
不要那么麻烦。
program p1031;
var
a:array[1..100,1..100]of integer;
i,j,n:integer;
begin
readln(n);
for i:=1 to n do begin
a[i,1]:=1;
a[i,i]:=1;
end;
for i:=3 to n do
for j:=2 to i-1 do
a[i,j]:=a[i-1,j]+a[i-1,j-1];
for i:=1 to n do
begin
for j:=1 to i do
write(a[i,j],' ');
writeln;
end;
end.
program p1031;
var
a:array[1..100,1..100]of integer;
i,j,n:integer;
begin
readln(n);
for i:=1 to n do begin
a[i,1]:=1;
a[i,i]:=1;
end;
for i:=3 to n do
for j:=2 to i-1 do
a[i,j]:=a[i-1,j]+a[i-1,j-1];
for i:=1 to n do
begin
for j:=1 to i do
write(a[i,j],' ');
writeln;
end;
end.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
线评测系统的网址发一个
我帮你看看
我帮你看看
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
算是对了,也许程序运行超时了,尽量简洁一点。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询