回 帖 发 新 帖 刷新版面

主题:请教下杨辉三角型

[em18]请教一下各位高手杨辉三角形大家怎么做的啊~我是先定义了一个函数算组合数,还有什么好办法吗?

回复列表 (共22个回复)

11 楼

我比较笨一点
所以你能不能告诉我再哪加呀
谢谢了

12 楼

我比较笨一点
所以你能不能告诉我再哪加呀
谢谢了

13 楼

我比较笨一点
所以你能不能告诉我再哪加呀
谢谢了

14 楼

我比较笨一点
所以你能不能告诉我再哪加呀
谢谢了[em18]

15 楼

杨辉三角么,看你是侧重时间还是侧重空间。如果是时间要求紧就用二维数组(一维换算的也可以),如果空间紧就组合数。个人喜欢组合数。

16 楼

能不能请你说得再清楚些
我都想知道
一维二维
怎么做

17 楼

这个是我刚刚编制的程序:可以运行成功。
/*打印杨辉三角*/
main()
{

int a[10][10],i,j;
for(i=0;i<=9;i++)
    for(j=0;j<=9;j++)
    {
     if(j==0)a[i][j]=1;
     else if(i==j)a[i][j]=1;
          else if (i<j)a[i][j]=0;
               else a[i][j]=a[i-1][j-1]+a[i-1][j];
    }
for (i=0;i<=9;i++)
     for(j=0;j<=i;j++)
        if(i>j)
        printf("%d    ",a[i][j]);
        else printf("%d\n",a[i][j]);
}

18 楼

可以不用数组做吗?用循环语句!

19 楼

用数组不就在用循环嘛

20 楼

源程序

program yanghui;
const
n=10;
var
i,j:integer;
yh:array[1..n,1..n] of integer;
begin
yh[1,1]:=1;
for i:=2 to n 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;
for i:=1 to n do
begin
    write(' ':40-3*i);
    for j:=1 to i do
    write(yh[i,j]);
    writeln;
end;
end.

program yanghui2;
const
n=10;
var
x,i,j:integer;
begin
for i:=0 to n do
    begin
    write(1:(5-i)*2);
    for j:=1 to i do
        begin
        x:=x*(i-j+1) div  i;
        write(x:4);
        end;
    writeln;
    end;
end.

我来回复

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