黑马程序员技术交流社区

标题: 杨辉三角 [打印本页]

作者: 余丽丽    时间: 2015-8-3 07:56
标题: 杨辉三角
/*
杨辉三角图形界面:
1
1  1
1  2  1
1  3  3  1
1  4  6  4  1
1  5  10 10 5 1
......

分析:
实质是(a+b)的n次方展开式各项的系数
可以用二维数组来存放,例如a[i][j]

n   系数的个数
0    1
1    2
2    3
3    4
分析得出,杨辉三角有以下几个特征:
1、第一项系数永远为1,即a[i][0]==1
2、数组长度为(n+1)行,(n+1)列
3、除了第一项和最后一项,其他各项的值等于上一行相邻两数的和,即a[i][j]=a[i-1][j-1]+a[i-1][j]
*/
#include <stdio.h>

int main(int argc, const char * argv[]) {
    int n=0;
    //要求用户输入n值
    printf("请输杨辉三角的n值:\n");
    //获取用户输入的值
    scanf("%d",&n);
    //校验用户输入的值
    if (n<0) {
        printf("输入不合法!\n");
        return 0;
    }
    //根据n值,定义二维数组,用来存放杨辉三角的值
    int a[n+1][n+1];

    printf("n = %d的杨辉三角图形为:\n\n",n);
    for (int i=0; i<n+1; i++) {
        for (int j=0; j<=i; j++) {
            
            if (j==0||j==i) {
                a[i][j]=1;
            }else{
                a[i][j]=a[i-1][j-1]+a[i-1][j];
            }
            printf("%d\t",a[i][j]);
        }
        printf("\n");
    }
   
      return 0;
}

作者: Eil.tea    时间: 2015-8-3 12:39
这是动态规划的思想~~~
作者: 我丶就这样    时间: 2015-8-3 17:26
围观学习!!!
作者: ReoWei    时间: 2015-8-3 18:49
赞一个,收藏一下
作者: 阿伦666    时间: 2015-8-3 22:28
好厉害,围观学习
作者: noway190    时间: 2015-8-3 22:40
楼上,可以呀
作者: 被水淹死的鱼    时间: 2015-8-3 23:24
学习啦~~




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2