题目描述
给出?n(n\le20)n(n≤20),输出杨辉三角的前?nn?行。
如果你不知道什么是杨辉三角,可以观察样例找找规律。
输入格式
无
输出格式
无
输入输出样例
输入 #1
6
输出?#1
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
思路:你需要知道杨辉三角的递推关系式
a[i][j]=a[i-1][j]+a[i-1][j-1];
然后把前前后后都填满为1,再遍历赋值
最后输出
代码:
#include<iostream>
#include<math.h>
#include<algorithm>
using namespace std;
int main()
{
int i,j,k,m,a[21][21],n;
scanf("%d",&n);
for(i=1;i<=n;i++){
a[i][1]=a[i][i]=1;
}
if(n>=3){
for(i=1;i<=n;i++){
for(j=2;j<i;j++){
a[i][j]=a[i-1][j]+a[i-1][j-1];
}
}
}
for(i=1;i<=n;i++){
for(j=1;j<=i;j++){
printf("%d ",a[i][j]);
}
printf("\n");
}
return 0;
}
|