C++问题:打印如下图案,层数由用户输入

来源:百度知道 编辑:UC知道 时间:2024/06/18 08:20:19
编程题:
打印如下图案,层数由用户输入
1
1 1
1 2 2 1
1 3 4 3 1
1 4 7 7 4 1
1 5 11 14 11 5 1
。。。

用二维数组解决

#include<iostream>
#include<iomanip>
using namespace std;
void display(int i,int j)
{int isum=1,jsum=1,k;
if(j==0) cout<<setw(4)<<(j+1);
else {for(k=1;k<=j;k++)
{isum*=(i-k+1);jsum*=k;}
cout<<setw(4)<<(isum/jsum);
}
}

int main()
{int n,i,j;
cout<<"输入要打印的层数n:";
cin>>n;
for(i=0;i<=n-1;i++)
{for(j=0;j<=i;j++)
{display(i,j);}
cout<<endl;
}
return 0;
}
解释一下啊:其实是第n层的第m个数的值就是
(n-1)!/(m-1)!这样算出来的。
当然m=1时最好是直接用该值等于零解决。