I00001 杨辉三角

来源:互联网 发布:工艺流程软件软件 编辑:程序博客网 时间:2024/04/28 22:00

杨辉三角国际上称为Pascal三角形。

杨辉三角与菲波拉契数列也是有关系的,看以下的图就知道了。

这里给出来两种方法的实现,一是使用二维数组来存储杨辉三角,二是使用一维数组来存储杨辉三角并且一边计算一边输出结果。

使用一维数组作为存储,实现打印杨辉三角,需要的技巧更高一些。

本文插图来自维基百科。

#include <stdio.h>// 使用二维数组的杨辉三角程序void pascal1(){    int n, i, j;    scanf("%d", &n);    int pascal[n][n];    for(i=0; i<n; i++)        for(j=0; j<=i; j++) {            if(j == 0 || j == i)                pascal[i][j] = 1;            else                pascal[i][j] = pascal[i-1][j] +pascal[i-1][j-1];        }    for(i=0; i<n; i++) {        for(j=0; j<=i; j++)            printf("%d ", pascal[i][j]);        printf("\n");    }}// 使用一维数组的杨辉三角程序void pascal2(){    int n, i, j;    scanf("%d", &n);    int pascal[n];    for(i=0; i<n; i++) {        for(j=i; j>=0; j--) {            if(j == i || j == 0)                pascal[j] = 1;            else                pascal[j] += pascal[j-1];            printf("%d ", pascal[j]);        }        printf("\n");    }}int main(void){    pascal1();    pascal2();    return 0;}

两种打印杨辉三角的程序,分别输入阶数5和6,其输出结果如下:

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

1 0
原创粉丝点击