/*
帕斯卡三角形,是一个三角形矩阵,其顶端是 1,视为(row0).
第1行(row1)(1&1)两个1,这两个1是由他们上头左右两数之和
(不在三角形内的数视为0).依此类推产生第2行(row2):0+1=1;
1+1=2;1+0=1.第3行(row3):0+1=1;1+2=3; 2+1=3;1+0=1. 循此
法可以产生以下诸行。
*/
#include<iostream>
#include<iomanip>
using namespace std;
long combi(int n,int r)//n为行数,r为控制打印的空格
{
int i;
{
p=p*(n-i+1)/i;
}
return p;
}
int main()
{
while(1)
{
int N=0;
cout << "请输入一个正整数:";
cin >> N;
if(N > 0 && N < 30)//N的值仅作测试用
{
int n,r;
cout << "巴斯卡三角形列表如下:";
cout << endl;
for(n=0; n<=N;n++)
{
for(r=0;r<=n;r++)
{
int i;//排版开始
if(r==0)
{
for(i=0;i<=(N-n);i++)
cout << " ";
}
else
{
cout << " ";
}//排版结束
cout << setw(3) << combi(n,r);
}
cout << endl;
}
}
else
{
cout << "请输入正确的指令!!" << endl;
exit(1);
}
cout << endl;
cout << endl;
}
return 0;
}
帕斯卡三角形,是一个三角形矩阵,其顶端是 1,视为(row0).
第1行(row1)(1&1)两个1,这两个1是由他们上头左右两数之和
(不在三角形内的数视为0).依此类推产生第2行(row2):0+1=1;
1+1=2;1+0=1.第3行(row3):0+1=1;1+2=3; 2+1=3;1+0=1. 循此
法可以产生以下诸行。
*/
#include<iostream>
#include<iomanip>
using namespace std;
long combi(int n,int r)//n为行数,r为控制打印的空格
{
int i;
long p=1;
{
p=p*(n-i+1)/i;
}
return p;
}
int main()
{
while(1)
{
int N=0;
cout << "请输入一个正整数:";
cin >> N;
if(N > 0 && N < 30)//N的值仅作测试用
{
int n,r;
cout << "巴斯卡三角形列表如下:";
cout << endl;
for(n=0; n<=N;n++)
{
for(r=0;r<=n;r++)
{
int i;//排版开始
if(r==0)
{
for(i=0;i<=(N-n);i++)
cout << " ";
}
else
{
cout << " ";
}//排版结束
cout << setw(3) << combi(n,r);
}
cout << endl;
}
}
else
{
cout << "请输入正确的指令!!" << endl;
exit(1);
}
cout << endl;
cout << endl;
}
return 0;
}