我看谁还学不会递归!(零基础小白必看的递归算法详解)

前言:

这篇文章是为零基础的小白入门写的

因为学计算机语言这么久

我发现自己在做题的过程中

如果刚开始接触某类型题目或者算法

如果一开始搞不明白

到后面要浪费很多很多很多时间和精力

作为过来人

写下这篇博客

或许能帮助你走一个小捷径,因为弯路我已经走过啦哈哈哈哈哈哈

话不多说

我们来看题:

题目:

解题思路:

这道题乍一看,肯定用for循环做,轻轻松松的嘛

但是我们这一次,尝试用递归的思路去实现

一,找到边界条件:

这道题的边界条件是  1  和  n

边界很重要的,如果刚开始比较糊涂,你可以试着找一找:

问题的数字范围

二,写if-else语句:

也就是分情况

我们要求sum,那么就要求分成两种情况:

1.当n=1

2.当n != 1

if(n == 1){
 
}else{

}

三,找到每种情况的return 结果

我们试想,当n=1时,我们直接输出sum + n的值就好了,因为n不能再减了

当n!=1时,我们需要让n减1,并且求出n-1对应的sum值

代码实现如下:

int make(int sum, int n){
    if(n == 1){
        return sum + n;
    }else{
        sum += n;
        return make( sum ,n-1);
    }

最核心的已经完成啦,接下来给出完整代码!

完整代码:

#include<stdio.h>
int make(int sum, int n){
    if(n == 1){
        return sum + n;
    }else{
        sum += n;
        return make( sum ,n-1);
    }


}
int main(){
    int n;
    scanf("%d", &n);
    int sum = 0;
    printf("%d", make(sum, n));
    return 0;
}

怎么样,你学废了么?

  • 11
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值