#include<stdio.h> #define Line 10 /* 第一种 就是 用二维数组来表示 每行第一个元素和最后一个都是1 从第三行开始,中间元素都是上一行同一列以及其左侧元素之和 */ int main(void){ int a[Line][Line]; a[0][0] = 1; for (int i = 1; i < Line; i++){a[i][0] = 1; a[i][i] = 1;} for (int i = 2; i < Line; i++){ for (int j = 1; j < i; j++){ a[i][j] = a[i - 1][j] + a[i - 1][j - 1]; } } printf("杨辉三角形如下:\n"); for (int i = 0; i < Line; i++){ for (int t = 0; t < Line * 2 - i * 2; t++) printf(" "); for (int j = 0; j <= i; j++){ printf("%4d", a[i][j]); } printf("\n"); } return 0; }
//这里的x从0开始,而y从1开始 int f(int x, int y){//求杨辉三角中第x行第y列的值 int t; if (y == 1 || y == x + 1) return 1;//x行的第1或最后一列,都为1 t = f(x - 1, y - 1) + f(x - 1, y); return t; }