论坛首页 入门技术论坛

打印杨辉三角

浏览 5252 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (1) :: 隐藏帖 (4)
作者 正文
   发表时间:2011-03-19  

要求:打印10行杨辉三角形

提示:

杨辉三角是一个由数字排列成的三角形数表,一般形式如下:
1 n=0
1 1 n=1
1 2 1 n=2
1 3 3 1 n=3
1 4 6 4 1 n=4
1 5 10 10 5 1 n=5
1 6 15 20 15 6 1 n=6
...

此数列中各行中的数字正好是二项式a+b乘方后,展开始终各项的系数。如:
(a+b)^1=a^1+b^1
(a+b)^2=a^2+2ab+b^2
(a+b)^3=a^3+3a^2b+3ab^2+b^3
...
(a+b)^6=a^6+6a^5b+15a^4b^2+20a^3b^3+15a^2b^4+6ab^5+b^6(注意发现规律)
...

打印出来,形如:

            1
          1   1
        1   2   1
      1   3   3   1
    1   4   6   4   1
  1   5  10  10   5   1
1   6  15  20  15   6   1
...

答案:

 

#include <stdio.h>

int c(int x, int y)
{
    int z;
    if(y==1 || y==x+1)
        return 1; // 如果是x行的第1列或第x+1列,则为1
    z = c(x - 1, y - 1) + c(x - 1, y);
    return z;
}

int main()
{
    int i, j,n=13;
    printf("N=");
    while(n>12)
    scanf("%d", &n);

    for(i = 0; i <= n; i++)
    {
        for(j = 0; j < 24- 2 * i; j++)
            printf(" "); // 输入第i行前的空格
        for(j = 1; j < i + 2; j++)
            printf("%4d", c(i, j));

        printf("\n");
    }
}

 

输出:

杨辉三角

  • 大小: 15.3 KB
   发表时间:2011-04-01  
10多年前用QB写过这样代码的飘过
0 请登录后投票
   发表时间:2011-04-01  
四年前用c++写过,好长时间多不看c了,现在专注java了。
0 请登录后投票
   发表时间:2011-04-02  
以前总是喜欢打图形,主要是算法!
0 请登录后投票
   发表时间:2011-04-02  
scala> def triangle(last: List[Int]): Stream[List[Int]] = last #:: triangle((0::last) zip (last:+0) map {case (p1, p2) => p1+p2})

scala> triangle(List(1)) take(10) foreach println
0 请登录后投票
   发表时间:2011-04-06  
对验证码有点不屌,准备研究图形识别技术,学习图形编程。
0 请登录后投票
   发表时间:2011-04-07  
这帖子也能上首页?JB
0 请登录后投票
   发表时间:2011-04-07  
jadethao 写道
四年前用c++写过,好长时间多不看c了,现在专注java了。

Me too, 上学时学过C++,也打印过,现在制作JAVA 了 都忘记了,赫尔
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics