用C语言生成帕斯卡三角形的最佳方法是什么

cvxl0en2  于 2022-12-03  发布在  其他
关注(0)|答案(1)|浏览(155)

C编程语言中的Pascal三角形:

#include <stdio.h>
#define X 15
int main(){
    int tri[X][X];
    for (int i=0;i<X;i++) {
        tri[i][0]=1;
        for(int k=X-1;k>i;k--) {
            tri[i][k]=0;
        }
        for(int j=1;j<i+1;j++) {
            tri[i][j]=tri[i-1][j-1]+tri[i-1][j];
        }
    }
//To give the correct values to all number set elements
    for (int m=0;m<X;m++) {
        printf("%d\t",tri[m][0]);
        for (int n=1;n<m+1;n++) {
            printf("%d\t",tri[m][n]);   
        }
        printf("\n");
    }
//to print them
    return 0;
}

我怀疑有一个更好的方法来解决这个程序,它使用更少的内存存储,我想找到一个更好的解决方案,这个C程序。
用C语言输出帕斯卡三角形的最佳方式是什么?

i5desfxk

i5desfxk1#

帕斯卡三角形中各行的数字是二项式系数。您可以对每一行单独计算它们:

#include <stdio.h>

#define X 15

int main(void)
{
    for (int n = 0; n < X; ++n)
    {
        int c = 1;
        for (int i = 1;; ++i)
        {
            printf("%d\t", c);
            if (i > n)
                break;
            c *= n - i + 1;
            c /= i;
        }
        printf("\n");
    }

    return 0;
}

请访问:https://en.wikipedia.org/wiki/Pascal%27s_triangle#Calculating_a_row_or_diagonal_by_itself

相关问题