A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

[学习交流] 杨辉三角

© 余丽丽 高级黑马   /  2015-8-3 07:56  /  529 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

/*
杨辉三角图形界面:
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;
}

7 个回复

倒序浏览
这是动态规划的思想~~~
回复 使用道具 举报
围观学习!!!
回复 使用道具 举报
赞一个,收藏一下
回复 使用道具 举报
好厉害,围观学习
回复 使用道具 举报
楼上,可以呀
回复 使用道具 举报
学习啦~~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马