在数学中, 帕斯卡的三角形是数字的三角形排列, 它给出任何二项式表达式(例如(x + y)n)的展开式的系数。它以17世纪法国数学家Blaise Pascal的名字命名。对于那些不熟悉二项式表达式的人来说, 一个更简单的解释是, 帕斯卡三角形是一个永无休止的数字等边三角形, 遵循将上面两个数字相加得到下面数字的规则。
在本文中, 我们将向你展示如何使用C编程语言在控制台中生成这个著名的三角形。
实现
图形上, 如上所述, 建立帕斯卡三角形的方法非常简单, 要得到下面的数字, 你需要在上面加上两个数字, 依此类推:
文章图片
有了逻辑, 实现起来一团糟, 这就是为什么你需要依赖一些公式来为你提供要生成的帕斯卡三角形的条目的原因。在编程中最简单的方法是使用二项式系数或众所周知的” n select k” :
文章图片
【如何在C中打印Pascal三角形】下面的代码是这样的:提示用户输入一个数字, 该数字定义三角形应具有的行数, 第一个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-clong factorial(int n){int c;
long result = 1;
for (c = 1;
c <
= n;
c++){result = result*c;
}return result;
}
这种方法的优点是, 你会看到一个等边三角形, 而不是三角形的矩形, 除了增加了练习的难度之外, 三角形的输出效果也更好。值得一提的是, 我们使用了上一篇文章所写的阶乘方法。
编码愉快!
推荐阅读
- “android.runtime.JavaProxyThrowable”是什么意思(我该如何解决?)
- 如何在C中获得数字的阶乘
- 在Symfony 1.4中实现全局非静态辅助函数
- 如何解决FOSUserBundle异常(服务” fos_user.mailer”具有对不存在的服务”模板”的依赖)
- 如何在Silex项目中使用CLI清除缓存
- 如何解决C++错误C4996’getch’(不建议使用此项目的POSIX名称。而是使用符合ISO C和C ++的名称:_getch)
- 如何在自己的插件之前在Shopware中注册第三方插件的自定义模型
- 如何反序列化使用Doctrine存储在数据库中的DC2Type数组数据类型
- 如何在Symfony 3中生成通用唯一标识符(UUID)