求杨辉三角的前n行数据。
输入格式:
输入n(n<10)值。
输出格式:
输出杨辉三角的前n行数据,每个数据占4列。
输入样例:
5
输出样例:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
思路:
杨辉三角:
选取一个二维数组a[10][10]存储每行的数字。看图可得出杨辉三角的规律:即每一行的第一个和最后一个数字为1,中间的数字为该位置上一行相对应的位置的值加上上一行相应位置的前面一个数字。比如第五行的第一个和最后一个数字均为1,第二个数字4则为第三行的第二个数字即3加上其前一个数字即1。代码可表示为(若为第i-1行,第j-1列,a[i][j]=a[i-1][j-1]+a[i-1][j] )
代码的话:首先读入一个整数n,然后定义一个二维数组a,用来存储杨辉三角中的每个数。接着用两个for循环遍历数组a,对于每个位置,如果它是第一列或者最后一列,那么它的值就是1,否则它的值就是上一行的左上角和右上角的值之和。最后再用两个for循环遍历数组a,打印出每个数。注意每个数字占四列。
完整代码:
#include <stdio.h>
int main()
{
int n;
scanf("%d",&n);
int a[10][10];
for(int i=0;i<n;i++){
for(int j=0;j<=i;j++){
if(j==0||j==i) a[i][j]=1;
else a[i][j]=a[i-1][j-1]+a[i-1][j];
}
}
for(int i=0;i<n;i++){
for(int j=0;j<=i;j++){
printf(" %d",a[i][j]);
}
printf("\n");
}
}