思路
杨辉三角
![]()
(1)我们先在画图板上简单的写一下杨辉三角,通过观察我们可以发现用二维数组可以很好地实现。
(2)可以把第一列和斜线那一列都赋成1,再打印中间的数 。
(3)通过观察,如果设行数为i,列数为j,arr[i][j] = arr[i-1][j-1] + arr[i-1][j]。
(4)内容都搞定了,然后我们可以通过打印空格使它成为一个等腰三角形。
代码实现
#include <stdio.h>
#include <windows.h>
#define n 10 //控制行数
int main()
{
int arr[n][n] = {0};
int i = 0;
int j = 0;
for(i=0; i<n; i++)
{
for(j=1; j<n-i; j++)//控制空格
{
printf(" ");//打印空格
}
for(j=0; j<=i; j++)
{
if(j==0 || i==j)//第一列和i=j列赋成1
{
arr[i][j] = 1;
}
else
{
arr[i][j] = arr[i-1][j-1] + arr[i-1][j];
}
printf("%4d",arr[i][j]);//对齐,打印数组
}
printf("\n");
}
system("color F1");//改变一下颜色
return 0;
}