个性化阅读
专注于IT技术分析

如何在C中打印Pascal三角形

在数学中, 帕斯卡的三角形是数字的三角形排列, 它给出任何二项式表达式(例如(x + y)n)的展开式的系数。它以17世纪法国数学家Blaise Pascal的名字命名。对于那些不熟悉二项式表达式的人来说, 一个更简单的解释是, 帕斯卡三角形是一个永无休止的数字等边三角形, 遵循将上面两个数字相加得到下面数字的规则。

在本文中, 我们将向你展示如何使用C编程语言在控制台中生成这个著名的三角形。

实现

图形上, 如上所述, 建立帕斯卡三角形的方法非常简单, 要得到下面的数字, 你需要在上面加上两个数字, 依此类推:

帕斯卡三角形图形表示

有了逻辑, 实现起来一团糟, 这就是为什么你需要依赖一些公式来为你提供要生成的帕斯卡三角形的条目的原因。在编程中最简单的方法是使用二项式系数或众所周知的” n select k”:

n为帕斯卡三角形选择k

下面的代码是这样的:提示用户输入一个数字, 该数字定义三角形应具有的行数, 第一个for循环将迭代用户提供的次数。在每次迭代中, 将执行另外两个循环, 第一个循环定义从左到右的空格数, 在每次迭代中删除其中一个空格, 直到最后一行, 该行不应有任何空格和重要的循环使用上述公式打印相应数字的值:

#include <stdio.h>

long factorial(int);

int main()
{
    int i, n, c;

    printf("Enter the number of rows you wish to see in pascal triangle\n");
    scanf("%d", &n);

    for (i = 0; i < n; i++)
    {
        for (c = 0; c <= (n - i - 2); c++){
            printf(" ");
        }

        for (c = 0 ; c <= i; c++){
            printf("%ld ", factorial(i)/(factorial(c)*factorial(i-c)));
        }

        printf("\n");
    }

    return 0;
}

// See our implementation of factorial for more information
// https://ourcodeworld.com/articles/read/857/how-to-get-the-factorial-of-a-number-in-c
long factorial(int n)
{
    int c;
    long result = 1;

    for (c = 1; c <= n; c++){
        result = result*c;
    }

    return result;
}

这种方法的优点是, 你会看到一个等边三角形, 而不是三角形的矩形, 除了增加了练习的难度之外, 三角形的输出效果也更好。值得一提的是, 我们使用了上一篇文章所写的阶乘方法。

编码愉快!

赞(0)
未经允许不得转载:srcmini » 如何在C中打印Pascal三角形

评论 抢沙发

评论前必须登录!