解题思路:
之前我写了一个用找到的规律来写的杨辉三角形的代码,想了一下又想到当初学排列组合数时说杨辉三角形中的数字就是排列组合数,所以用组合数又写了一次。
但是输入行数太大的时候阶乘函数无法返回值,会导致错误,但如果想算较大数字的阶乘也不是不行,最后面有一段代码可以这样算,可是太长,所以分开单列了一下。有兴趣的可以把fun1()这个函数重新编写试一下啊。
参考代码:#include
using namespace std;
long long fun1(int n) //阶乘函数,返回n的阶乘
{
long long sum = 1;
for (int i = 2; i <= n; i++)
{
sum *= i;
}
return sum;
}
long long fun2(int m, int n) //组合数函数,C m取n
{
return fun1(m) / (fun1(n)*fun1(m - n));
}
void fun3(int m,int n) //输出空白格函数,m表示二维数组行的下标,n表示行的个数
//这个函数的作用主要是为了让输出的杨辉三角形看起来更对称
{
for (int i = 1; i <= n - m - 1; i++)
{
cout <