想要打印出杨辉三角,那么就得先观察它的规律
我们可发现他每一行的数的个数即为他所对应的行数,且首项和尾项都为1,那么我们可以先用一个数来表示
接下来我们要找到其内部元素之间的规律
如下图:
那么我们就可以很容易的得出arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j],很多的这种一下子看不出的规律,我们都可以先写一个实例出来,然后就容易推导出来了。
当然,我们这里要从第二行开始
接下来我们的打印结果为
我们还要将其的格式对整齐
于是便在其每行的第一个元素加入空格 ,因为我们n=10,最后一行最大的数为三位数,且我们要像左对其,所以我们用%-3d ,故最后一行的大小为2+4*10=42,第一行为2*9+3=21,刚好居中。
我们开头可以声明n的值,因为数组中不可放入变量,但这样做我们依旧可以随意改变n的值
所以最终的代码为:
#define n 10
int main()
{
int arr[n][n] = { 0 };
int i = 0;
int j = 0;
int m = 0;
for (i = 0; i < n; i++)
{
arr[i][0] = 1;
for (j = 0; j <= i; j++)
{
arr[i][i] = 1;
if(i>=2)
arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];
}
}
for (i = 0; i < n; i++)
{
m = n - i;
while (m)
{
printf(" ");
m--;
}
for (j = 0; j <= i; j++)
{
printf("%-3d ", arr[i][j]);
}
printf("\n");
}
return 0;
}
最终的结果为