题解 | #杨辉三角#

杨辉三角

https://ac.nowcoder.com/acm/problem/14320

递归处理杨辉三角形

什么思路可以使得递归能够解决问题?

首先,确定问题如何来分立的解决,给定n,输出n行的杨辉三角形,那么我们就可以从每一行的数据进行入手准备

由此就可以使用递归处理,最最关键的一步是每一次的递归内怎么迭代处理数组数据?

g[k][i] = g[k - 1][i - 1] + g[k - 1][i]就是数据的处理方式

根据上面的数据处理,得知,我们数组的起始应该是从1开始,不然的话,行数或者列数减去1后会发生数组越界。

#include<iostream>

using namespace std;
const int N = 40;
int g[N][N];
int n;

void solve(int k)
{
    if (k > n)
        return ;
    for (int i = 1; i <= k; i ++)
    {
        
        g[k][i] = g[k - 1][i - 1] + g[k - 1][i];//数组处理数据方程
        cout << g[k][i] << " ";//循环输出当前这一行的杨辉三角形
    }
    puts("");//换行
    solve(k + 1);// 递归进入到下一行的数据输出
}
int main()
{
    g[0][0] = 1;  //初始化左上角的数据,以便于后面的每一次数据处理,可以得到相应的数据
    cin >> n;
    
    solve(1);
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-11 11:16
点赞 评论 收藏
分享
06-26 22:20
门头沟学院 Java
码农索隆:让你把简历发给她,她说一些套话,然后让你加一个人,说这个人给你改简历,然后开始卖课
我的求职精神状态
点赞 评论 收藏
分享
门口唉提是地铁杀:之前b站被一个游戏demo深深的吸引了。看up主页发现是个初创公司,而且还在招人,也是一天60。二面的时候要我做一个登录验证和传输文件两个微服务,做完要我推到github仓库,还要我加上jaeger和一堆运维工具做性能测试并且面试的时候投屏演示。我傻乎乎的做完以后人家跟我说一句现在暂时不招人,1分钱没拿到全是白干
你的秋招第一场笔试是哪家
点赞 评论 收藏
分享
昨天 14:00
门头沟学院 运营
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务