BC109 杨辉三角
一、描述
KiKi知道什么叫杨辉三角之后对杨辉三角产生了浓厚的兴趣,他想知道杨辉三角的前n行,请编程帮他解答。杨辉三角,本质上是二项式(a+b)的n次方展开后各项的系数排成的三角形。
输入描述:
第一行包含一个整数数n。 (1≤n≤30)
输出描述:
包含n行,为杨辉三角的前n行,每个数输出域宽为5。
示意:
输入:
6
输出:
1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1
二、思路
1)直角三角形在控制循环条件的时候,一般列数 j <= i
2)其性质包括:每行的端点数为1, 末尾数也为1;除了端点和末尾每个数等于它左上方和上方的两数之和。
if(i > 1 && j > 0 && j < i)
{
arr[i][j] = arr[i-1][j-1]+arr[i-1][j];
}
三、代码
int main() {
int num = 0;
scanf("%d",&num);
getchar();
int arr[num][num];
int i = 0;
int j = 0;
for(i = 0; i < num; i++)
{
for(j = 0; j <= i; j++)
{
arr[i][i] = 1;
arr[i][0] = 1;
if(i > 1 && j > 0 && j < i)
{
arr[i][j] = arr[i-1][j-1]+arr[i-1][j];
}
printf("%5d",arr[i][j]); //控制了输出域宽为5,不需要额外加空格(观察阳历输出为右对齐)
}
putchar(10);
}
return 0;
}
注意:在控制了输出格式的时候,不需要额外写空格。