【暑期基础2】G HDU 2032 杨辉三角

题意

画出杨辉三角。

思路

1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1

如上面这个 6 行的杨辉三角,一种比较容易理解的方法是:开一个数组,先把两侧的 1 全部补充完整,然后从第三行开始,坐标为(x,y)的值等于(x-1,y)+(x-1,y-1)的和。最后输出这个数组。这题只需使用三个 for 循环就可以了。

AC 代码 *

#include <stdio.h>
#define MAX 100
int main(){
    int a[MAX][MAX] = {0};
    int n,i,j;
    while (scanf("%d", &n) != EOF ){ 
        for( i = 0; i < n; i++){
            for( j = 0; j <= i; j++){
                a[i][0] = 1;
                a[i][i] = 1;
            }
        }
        for( i = 2; i < n; i++){
            for( j = 1; j <= i; j++){
                a[i][j] = a[i-1][j-1] + a[i-1][j];
            }
        }
        for( i = 0; i < n; i++){
            for( j = 0; j <= i; j++){
                printf("%d", a[i][j]);
                printf( j != i ? " " : "\n");               
            }
        }
        printf("\n");
    }
    return 0;
}

* 注:在 HUST 的 Virtual Judge 上测试 AC

    原文作者:杨辉三角问题
    原文地址: https://blog.csdn.net/Hello1995/article/details/47313163
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞