题解 | #杨辉三角#

杨辉三角

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-09 18:28
门头沟学院 Java
写着提前批,结果还要实习4个月以上???
程序员牛肉:这种不用看,直接投了,面试的时候问对应的HR就行。有可能他们是直接复制的暑期实习的模板。
点赞 评论 收藏
分享
05-30 12:03
山西大学 C++
offer来了我跪着...:不是骗子,等到测评那一步就知道为啥这么高工资了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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