输出杨辉三角

1
1 1
1 2 1
1 3 3 1
1 4 6 4 1

根据它的性质,每行行首是1,每行行尾也是1,除此外其余数都为其上一列的数加上上一列的数的前面那个数。可以写出程序。

#include <stdio.h>

int main(void)
{
    int n = 0;
    printf("请输入你想输入的行数\n");
    scanf("%d", &n);

    int array[n][n];
    for (int i = 0; i < n; i++)
        array[i][0] = array[i][i] = 1;//行首行尾为1

    for (int i = 2; i < n; i++)
        for (int j = 1; j < i; j++)//j(列数)不能大于i(行数)
            array[i][j] = array[i - 1][j - 1] + array[i - 1][j];//求和

    for (int i = 0; i < n; i++)//打印
    {
        for (int j = 0; j <= i; j++)
            printf("%4d", array[i][j]);
        printf("\n");
    }

    return 0;
}

我们也可以根据公式来算,看下面的
Cn1=Cnn1=1 C^1_n = C^{n-1}_ n= 1

C21=2 C^1_2 = 2

C31=3 C^1_3 = 3

C42=6 C^2_4 = 6
Cnr=Anrr!=n!r!(nr)! C^r_n = {\frac {A^r_n} {r!}}={\frac{n!} {r!(n-r)!}}
下标正好是行数,上标正好是列数,结果也相同。

#include <stdio.h>
float C(int n, int r);
float Actorial(int n);

int main(void)
{
    int n = 0;
    printf("请输入你想输入的行数\n");
    scanf("%d", &n);

    int array[n][n];

    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j <= i; j++)
            printf("%4.0f", C(i, j));
        printf("\n");
    } 

    return 0;
}
float C(int n, int r)
{
    return Actorial(n) / (Actorial(r) * Actorial(n - r));
}
float Actorial(int n)
{
    float sum = 1;
    for (int i = 1; i <= n; i++)
        sum = (float)(sum * i);
    return sum;
}

也可以不用函数
Cnk=n(n1)(n2)(n3)(nk+1)1234k C^k_n={\frac{n*(n - 1)*(n-2)*(n-3)*……*(n - k +1)}{1*2*3*4*……*k}}

#include <stdio.h>
float C(int n, int r);
float Actorial(int n);

int main(void)
{
    int n = 0;
    printf("请输入你想输入的行数\n");
    scanf("%d", &n);

    int array[n][n];

    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j <= i; j++)
        {
            int sum = 1;
            for (int k = 1; k <= j; k++)
            {
                sum = sum * (i - k + 1) / k;
            }
            printf("%3d", sum);
        }
        printf("\n");
    }

    return 0;
}
©️2020 CSDN 皮肤主题: 1024 设计师: 上身试试 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值