杨辉三角是二项式系数在三角形中的一种几何排列,其特点是三角每一行第一个数和最后一个数都是1,如果一个数不是行首或行尾,则该数等于其上一行同一列数字和其前一数字的和。
1 //YangHuisanjiao 输入行数,输出三角 2 #include<iostream> 3 using namespace std; 4 #define N 35 5 6 int main() 7 { 8 int a[N][N]; 9 int n, i, j; 10 cin >> n; 11 for (i = 1;i <= n;i++) 12 { 13 for (j = 1;j <= i;j++)//使用i来约束j的数值 14 { 15 if (i == j || j == 1)//每行行首或行尾均为1 16 a[i][j] = 1; 17 else 18 a[i][j] = a[i - 1][j] + a[i - 1][j - 1]; 19 20 cout << " "; 21 22 cout << a[i][j]; 23 } 24 cout << endl; 25 } 26 27 return 0; 28 }
在求解杨辉三角时,注意j的值为1以及j和i的值相等的时,将该位置赋值为1。其它情况下(数不在行首或行尾),由之前所得结论:该数等于其上一行同一列数字和其前一数字的和来赋值。
1 a[i][j] = a[i - 1][j] + a[i - 1][j - 1];
示例:
1 10 2 3 1 4 1 1 5 1 2 1 6 1 3 3 1 7 1 4 6 4 1 8 1 5 10 10 5 1 9 1 6 15 20 15 6 1 10 1 7 21 35 35 21 7 1 11 1 8 28 56 70 56 28 8 1 12 1 9 36 84 126 126 84 36 9 1