杨辉三角的两种输出形式

杨辉三角有两种做法,一种是计算组合数的公式,一种是二维数组。

输出形式①:不要求对称

做法一:

#include<stdio.h>
//组合数写法 C k,j
long long zuhe(int k,int j)
{
    long long x=1;
    for(int i=1;i<=j;i++)
    {
        x=x*(k-i+1)/i;
    }
    return x;
}

int main()
{
    int n;
    scanf("%d",&n);
    for(int i=0;i<n;i++)
    {
        printf("%10d",1);
        for(int j=1;j<=i;j++)
        {
            printf("%10d",zuhe(i,j));
        }
        printf("\n");
    }
    return 0;
}

输出形式②:要求对称

做法一:

#include<stdio.h>
//组合数写法 C k,j
long long zuhe(int k,int j)
{
    long long x=1;
    for(int i=1;i<=j;i++)
    {
        x=x*(k-i+1)/i;
    }
    return x;
}

int main()
{
    int n,j,m=0;
    scanf("%d",&n);
    for(int i=0;i<n;i++)
    {
        for(j=1;j<n-m;j++) printf("     ");
        m++;
        printf("%10d",1);
        for(int j=1;j<=i;j++)
        {
            printf("%10d",zuhe(i,j));
        }
        printf("\n");
    }
    return 0;
}

おすすめ

転載: blog.csdn.net/qq_59414507/article/details/121189438