问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

函数递归:杨辉三角形

创作时间:
作者:
@小白创作中心

函数递归:杨辉三角形

引用
CSDN
1.
https://m.blog.csdn.net/2301_81918006/article/details/140989723

问题描述

在屏幕上打印杨辉三角形的前n行。

问题分析

杨辉三角形中的数,正是(x+y)的N次方幂展开式各项的系数。本题作为程序设计中具有代表性的问题,可以从杨辉三角形的特点出发进行分析:

  1. 第x行有x个值(设起始行为第1行)。
  2. 对于第x行的第y个值:
  • 当y=1或y=x时,其值为1
  • 当y!=1且y!=x时,其值为第x-1行的第y-1个值与第x-1行第y个值之和

完整程序

#include <stdio.h>

int f(int i, int j) {
    if (i == 1 || j == 1 || j == i) {
        return 1;
    } else {
        return f(i - 1, j - 1) + f(i - 1, j);
    }
}

int main(void) {
    int n;
    scanf("%d", &n);
    for (int i = 1; i <= n; i++) {
        for (int j = 0; j < n - i; j++) {
            printf(" ");
        }
        for (int j = 1; j <= i; j++) {
            int x = f(i, j);
            printf("%4d", x);
        }
        printf("\n");
    }
    return 0;
}

运行结果

注意: 在输出杨辉三角形时,需要特别注意其格式,确保每行的数字对齐。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号