题目:打印出以下的杨辉三角形(要求打印出10行)。
技术要点:
要想打印出杨辉三角形首先得找出图形中数字间得规律,从图形上来看我们分析出以下规律:
①每一行得第一列均为1
②对角线上的数字也均为1
③除每一行第一列和对角线上的数字外,其余数字均等于其上一行同列数字与其上一行前一列的数字之和,也就是如下图:
上图简单标注出规律。
代码
int main()
{
int arr[11][11];//定义i,j,arr[11][11]为基本整型
int i, j;
for (i = 1; i < 11; i++)
{
arr[i][i] = 1;//对角线的元素都是1
arr[i][1] = 1;//每行第一列元素为1
}
for (i = 3; i < 11; i++)//for循环范围从第3行开始到第10行
for (j = 2; j <= i-1; j++)//for循环范围从第2列开始到该行行数减1列为止。
arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];//第i行j列等于i-1行j-1列的值加上i-1行j列的值。
for (i = 1; i < 11; i++)
{
for (j = 1; j <= i; j++)
printf("%4d", arr[i][j]);
printf("\n");
}
}
第一个for循环将第一列和对角线全部赋值为1,第二个for循环从第3行开始,一直到第10行,第三个for循环是从第2列到该行行数减1为止。第四个for循环是输出二维数组中的元素。
举一反三:
①从键盘中输入如下字母:“a,b,c,d,e,f”,输出时的顺序如下:“f,a,b,c,d,e”
②编程实现通过循环按行顺序为一个5*5的二维数组data赋1-25的自然数,然后输出该数组的左下半三角形。