题干:
求杨辉三角的前n行数据。
输入格式:
输入n(n<10)值。
输出格式:
输出杨辉三角的前n行数据,每个数据占4列。
输入样例:
5
输出样例:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
题解:
本题是一道二维数组的题目,运用二维数组可以轻松的解决问题
首先我们需要了解杨辉三角的构成。
杨辉三角是指 每行首末两元素是1,其余元素等于它上方两数之和,行数等于每行的元素数。
这里我们抓住感念的核心,即每个元素等于它上方两数之和,即可运用二维数组进行求解
代码如下:
#include <stdio.h>
#include <stdio.h>
int main()
{
int n;
scanf("%d",&n);
int a[n][n];
for(int i=0;i<n;i++){
for(int j=0;j<=i;j++){
if(i==j||j==0){
a[i][j]=1; //实现首末元素为1;
}
else{
a[i][j]=a[i-1][j]+a[i-1][j-1]; //实现中间元素为上方两元素之和;
}
}
}
for(int i=0;i<n;i++){
for(int j=0;j<=i;j++){
printf("%4d",a[i][j]);
}
printf("\n");
}
return 0;
}