C程序设计 (第四版) 谭浩强 习题 6.6
习题 6.6 输出以下的杨辉三角形(要求输出10行)
1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 ⋯ \begin{aligned}&1\\&1\ \ \ \ 1\\&1\ \ \ \ 2\ \ \ \ 1\\&1\ \ \ \ 3\ \ \ \ 3\ \ \ \ 1\\&1\ \ \ \ 4\ \ \ \ 6\ \ \ \ 4\ \ \ \ 1\\&1\ \ \ \ 5\ \ \ \ 10\ \ \ \ 10\ \ \ \ 5\ \ \ \ 1\\& \cdots \end{aligned} 11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 1⋯
IDE工具:VS2010
Note: 使用不同的IDE工具可能有部分差异。
代码块
方法1:使用数组
思路:
设置数组,默认值为0。
每行第一列值都为1,且当行号与列号相等时,值也为1。
其他行列的值等于它的上一行前一列的值与上一行当前列的值相加。
#include <>
#include <>
int main(){
int num[10][10] = {0};
for(int i = 0; i < 10; i++){
for(int j = 0; j <= i; j++){
if(j == 0 || j == i){
num[i][j] = 1;
}
else{
num[i][j] = num[i - 1][j] + num[i - 1][j - 1];
}
printf("%4d", num[i][j]);
}
printf("\n");
}
system("pause");
return 0;
}