您的位置:首页 > 编程语言 > C语言/C++

【C/C++】解密杨辉三角

2016-07-05 10:12 281 查看

一、杨辉三角

所谓杨辉三角,就是下面这个图形



通过找规律可以发现,除了每一行的第一个和最后一个是1以外

其余的数都是通过上一行的两个数相加得到的



二、程序分析

①定义一个二维数组。

并向里面按照规律赋元素,最后打印输出

②需要利用for循环进行赋值 

除了1之外 其余赋值方法用  a[i][j] = a[i-1][j-1]+a[i-1][j]; //i为行数,j为列数

③封装函数注意

参数传递的时候切记维数必须给出

三、杨辉三角代码块

(1)普通版

#include<stdio.h>
int main()
{
int a[10][10] = {0};
int i = 0;
int j = 0;
for(i = 0; i<10 ;i++)
{
a[i][0] = 1;
for(j = 1; j<i ;j++)
{
a[i][j] = a[i-1][j-1]+a[i-1][j];
}
a[i][i] = 1;
}
for(i = 0; i<10 ;i++)
{
for(j = 0; j<=i ;j++)
{
printf("%3d ",a[i][j]);
}
printf("\n");
}
return 0;
}

(2)封装函数

#include<stdio.h>
void print(int a[][10])
{
int i = 0;
int j = 0;
for(i = 0; i<10 ;i++)
{
for(j = 0; j<=i ;j++)
{
printf("%3d ",a[i][j]);
}
printf("\n");
}
}
int main(void)
{
int a[10][10] = {0};
int i = 0;
int j = 0;
for(i = 0; i<10 ;i++)
{
a[i][0] = 1;
for(j = 1; j<i ;j++)
{
a[i][j] = a[i-1][j-1]+a[i-1][j];
}
a[i][i] = 1;
}
print(a);
return 0;
}



四、小结

二维数组传递的时候必须指定形参,否则将出现错误
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息