杨辉三角,是二项式系数在三角形中的一种几何排列。
1.每个数等于它左上方和上方两数之和。 2.每行数字左右对称,由1开始逐渐变大。 3.第n行的数字有n项。 4.(a+b)^n的展开式中的各项系数依次对应杨辉三角的第(n+1)行中的每一项。
1.循环
#include<stdio.h> #include<windows.h> #pragma warning(disable:4996) void PascalsTriangle(int coeff[][100], int row) { int i, j; for (i = 0; i < row;i++){ coeff[i][0] = 1; coeff[i][i] = 1; } for (i = 2; i < row; i++){ for (j = 1; j < i; j++){ coeff[i][j] = coeff[i - 1][j - 1] + coeff[i - 1][j]; } } for (i = 0; i < row; i++){ for (j = 0; j <= i; j++){ printf("%d \t", coeff[i][j]); } printf("\n"); } } int main() { int coeff[100][100] = { 0 }; int row = 0; printf("请输入行数:"); scanf("%d", &row); PascalsTriangle(coeff,row); system("pause"); return 0; }运行结果: 2.递归
#include<stdio.h> #include<windows.h> #pragma warning(disable:4996) int PascalsTriangle(int i,int j) { if (i == 1 || i == j || j==1){ return 1; } else{ return PascalsTriangle(i - 1, j - 1) + PascalsTriangle(i-1, j 1); } } int main() { int i = 0; int j = 0; int row = 0; printf("请输入n:"); scanf("%d", &row); for (i = 1; i <= row; i++){ for (j = 1; j <= i; j++){ printf("%d \t", PascalsTriangle(i, j)); } printf("\n"); } system("pause"); return 0; }运行结果: