巴斯卡三角形是两个边全输出1,三角形的内部用上行相邻两个数之和,各相加后的和数等分地放在三角形的各行内。
实现代码如下所示:
#include <iomanip>
#include <iostream>
using namespace std;
long combi(int n, int r)
{
int i;
long p = 1;
for (i = 1; i <= r; i++)
p = p * (n - i + 1) / i;
return p;
}
int main()
{
int n, r, t;
for (n = 0; n <= 12; n++) //控制行数
{
for (r = 0; r <= n; r++)
{
int i;
if (r == 0)
{
for (i = 0; i <= (12 - n); i++)
cout << " "; //每行第一个元素的位置
}
else
cout << " "; //每个数之间空两个格
cout << setw(3) << combi(n, r);
}
cout << endl;
}
return 0;
}
输出结果: