经典算法――巴斯卡三角形

时间:2022-08-17 11:14:20

经典算法――巴斯卡三角形

编程输出形如上面的程序。

输出n行的数字,第i行有2*i-1个数字,第一行的1出现在第n个位置上(行列都从1开始计数),从第2行开始i行j列的元素等于i-1行j-1列的元素与i+1行j+1列的元素之和,然后数字之间输出空格即可。

#include<iostream>
#include<cstring>
using namespace std;
#define N 20
int bsk[N][N];
int main(){
int number;
cout<<"请输入一个数字:"<<endl;
cin>>number;

memset(bsk,0,N*N*sizeof(int));

int i,j;
bsk[1][number]=1;

for(i=2;i<=number;i++)
{
int n=i;
j=number+1-i;
while(n--)
{
bsk[i][j]=bsk[i-1][j-1]+bsk[i-1][j+1];
j+=2;
}
}

for(i=1;i<=number;i++)
{
for(j=1;j<=2*number-1;j++)
{
if(bsk[i][j]!=0)
cout<<bsk[i][j]<<" ";
else
cout<<" ";
if(j==2*number-1)
{
cout<<endl;
break;
}
}
}
return 0;
}


本文出自 “菜鸟的进阶之路” 博客,请务必保留此出处http://beyond316.blog.51cto.com/7367775/1222959