You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
32 lines
1.1 KiB
32 lines
1.1 KiB
#include <iostream>
|
|
#include <iomanip>
|
|
using namespace std;
|
|
|
|
/*杨辉三角最终显示效果是一个等腰三角形,两个最外边都是1
|
|
杨辉三角的根本在于,每个数等于它上方两数之和
|
|
*/
|
|
int main(){
|
|
int n;//变量n在此处起到了限制输出行数的作用,可优化成用户输入
|
|
cin>>n;
|
|
int i,j,a[n][n];
|
|
|
|
//使第一列和对角线元素的值为1
|
|
for (i=0;i<n;i++){ //前两行全为1,拿出来单独处理
|
|
a[i][i]=1;//使最右侧边全为1
|
|
a[i][0]=1;//使最左侧边全为1
|
|
}
|
|
|
|
//从第三行开始处理
|
|
for (i=2;i<n;i++) //三行开始出现变化
|
|
for (j=1;j<=i-1;j++) //j始终慢i一步
|
|
a[i][j]=a[i-1][j-1]+a[i-1][j];//每个数等于它上方两数之和,如a32=a21+a22
|
|
|
|
//输出数组各元素的值
|
|
for (i=0;i<n;i++){ //从第一行开始
|
|
for (j=0;j<=i;j++) //利用j将每一行的数据全部输出
|
|
cout<<a[i][j]<<" "; //在C++中,setw(int n)用来控制输出间隔,这里是指前元素末尾与后元素末尾之间有个5空格位
|
|
cout<<endl;
|
|
}
|
|
//cout<<endl;
|
|
return 0;
|
|
}
|