[2032 ]:杨辉三角

来源:互联网 发布:戴尔色彩软件 编辑:程序博客网 时间:2024/05/20 06:56

Problem Description
还记得中学时候学过的杨辉三角吗?具体的定义这里不再描述,你可以参考以下的图形:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1

Input
输入数据包含多个测试实例,每个测试实例的输入只包含一个正整数n(1<=n<=30),表示将要输出的杨辉三角的层数。

Output
对应于每一个输入,请输出相应层数的杨辉三角,每一层的整数之间用一个空格隔开,每一个杨辉三角后面加一个空行。

Sample Input
2 3

Sample Output
1
1 1

1
1 1
1 2 1

解题思路:比较简单的题目,只要发现规律及可解答(下面有图形展示解题思路)

/*  author : Yangchengfeng*/#include<stdio.h>#define N 100int main(){    int n;    while(scanf("%d", &n)!=EOF){         int i, j, num[N][N];        for(i=0; i<n; i++){            num[i][0] = 1;        } // 每行第一个数为1        num[1][1] = 1; // 先给定前两行的数        for(j=0; j<n; j++){            num[j][j] = 1;        } // 每行最后一个数为1        for(i=2; i<n; i++){            for(j=1; j<n; j++){                num[i][j] = num[i-1][j-1] + num[i-1][j];            }        } // 利用得出的规律        for(i=0; i<n; i++){            for(j=0; j<=i; j++){                printf("%d", num[i][j]);                if(j != i){                    printf(" ");                } else {                    printf("\n");                }            }        }        printf("\n");    } // 按要求输出    return 0;}

这里写图片描述
下面以图形展现解题思路:
这里写图片描述

0 0