C语⾔杨辉三⾓代码详解(超级详细,真的不进来看看吗?)杨辉三⾓:是⼆项式系数在三⾓形中的⼀种⼏何排列。它的两条斜边都是1,中间数字等于它肩上数字之和。
就像这样:
那么,如何⽤C语⾔写出杨辉三⾓呢?
思路
1、定义⼀个⼆维数组,赋初值为1,这⾥以四⾏四列举例
1111
1111
1111
1111
2、只输出左下⾓(第1⾏,1列……第n⾏,n列)。
1
11
111
1111
3、处理中间数据:从第3⾏第2列开始,当前数=上⼀⾏的数+上⼀⾏前⾯的数。
1
11
121
1331
4、每⾏之前加不等的空格,使其居中对齐。
1
11
121
1331
代码(此处以9⾏9列举例)
#include<stdio.h>
html怎么让所有内容居中int main()
{
int data[9][9];//定义⼀个9⾏9列的数组
for (int i = 0; i < 9; i++)
{
for (int j = 0; j < 9; j++)
data[i][j] = 1;
}//将数组中的所有数字赋值为1,如思路中1
for (int i = 1; i < 9; i++)
{
for (int j = 1; j < i; j++)
data[i][j] =data[i-1][j]+data[i - 1][j - 1];//当前数=上⼀⾏的数+上⼀⾏前⾯的数
}//处理中间数据,如思路中3
for (int i = 0; i < 9; i++)
{
for (int k = 0; k < 26 - 6*i / 2; k++)
printf(" ");//使数据居中显⽰,如思路中4
for (int j = 0; j <= i; j++)//j<=i表⽰仅输出左下⾓数据,如思路中2
printf("%6d", data[i][j]);
printf("\n");//输出数组所有数据
}
return 0;
}
⼩细节:
1、计算机中记数是从0开始,所以要表⽰第1⾏和第1列时,int i=0; int j=0;
2、在使数据居中显⽰时, i/2 是因为居中只需左边加空格,6*i/2是因为输出时%6d
3、在输出数组所有数据时,⽤ "%6d" (%d表⽰输出的数为整形,6表⽰该数在输出时宽度⾄少为6位)。⼤家可以尝试将6换成其它数字,看看有什么不同。
运⾏
操作环境:Visual Studio2019
通往成功的道路不⽌⼀条,⼤家可以尝试⽤其它⽅法写出杨辉三⾓。
今天你学会了吗?觉得有⽤就点个赞吧,拜拜~
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论