打印杨辉三角,求代码
    1
   1 1
  1 2 1
 1 3 3 1
1 4 6 4 1数值序列为:
1  n  n (n-1) n (n-1) (n-2)
- -- --*----- -*-----*-----  ........
1  1  1   2   1   2     3(n>=0)
是不是递归调用?

解决方案 »

  1.   

    这是我以前做的杨辉三角形,用C
    用的循环
    main()
    {
     int a[15]={1,0,0,0,0,0,0,0,0,0};
     int b[15];
     int i,j;
     for(i=0;i<15;i++)
     {
      for(j=0;j<15;j++)
      {
       if(a[j]==0) break;
       printf("%d ",a[j]);
      }
      for(j=0;j<15;j++)
      b[j]=a[j];
      for(j=0;j<15;j++)
      a[j+1]=b[j]+b[j+1];
      printf("\n");
     }
    }
      

  2.   

    第二种方法就是,看作以下这样:
    1(0,0)
    1(1,0)  1(1,1)
    1(2,0)  2(2,1)  1(2,2)
    1(3,0)  3(3,1)  3(3,2)  1(3,3)
    1(4,0)  4(4,1)  6(4,2)  4(4,3) 1(4,4)
    假定下标代号为(m,n)
    那么每个数都满足这个条件:I(m,n) = m!/((m-n)!*n!){!代表阶乘}还有不明白的,可以找我,QQ;106873731
      

  3.   

    以下是源代码:
    const n=10;
    var
      a:array[0..n-1,0..n-1] of integer;
      b:array[0..n-1,0..n-1] of integer;
      i,j:Integer;
    begin
      //初始化数组
      for i:=0 to n-1 do
        for j:=0 to n-1 do
          a[i,j]:=0;
      //构造杨辉三角形
      a[0,0]:=1;
      a[1,0]:=1;
      a[1,1]:=1;
      for i:=2 to n-1 do
        for j:=0 to i do
        begin
          a[i,j]:=a[i-1,j-1]+a[i-1,j];
        end;
      //在Memo1中显示
      Memo1.Clear;
      for i:=0 to n-1 do
      begin
        for j:=0 to i do
          Memo1.Text:=Memo1.Text+IntToStr(a[i,j]);
        Memo1.Lines.Add(#13+#10);
      end;