用递归输出1~10

  1. 最常规的模板:正向输出1~10
    在这里插入图片描述
    输出结果:
    在这里插入图片描述
    这种写法是最常规的写法,出口只被调用一次,而前十次都是一直在执行 f (n-1)。直到第十一次,调用了第十一次。在程序栈中加上主函数,存在十二个栈,执行到第十二个,直接出口返回 0 。之后就执行输出语句。
    其实不难发现,递归也是一种循环,只不过for循环考虑初始条件,终止条件相较来说,较难考虑。 递归正好相反,它是一种逆向思维,不符合我们的思考习惯。

  2. 没有返回值正向输出1~10
    在这里插入图片描述
    输出结果:
    在这里插入图片描述
    解释这个递归把返回值去掉了,主要的特点是输出了0。是因为在判断0>0不成立的时候,只是终止调用函数了,但是输出语句还得执行,所以输出了0。 其实这个的判断最终的否定就是上个例子的出口。输出语句还是一样的,只是没有返回值了。

  3. 输出1~10
    在这里插入图片描述
    输出结果:
    在这里插入图片描述
    这个函数想要做的就是能不能我先做输出1,不想再做输出10了。这时候只用一个参数行不通,必须在函数中出现明确的10加以限制,那么这个函数就具有独特性了,这不是我们想要的。一般是加两个参数。

  4. 逆向输出1~10
    在这里插入图片描述
    很简单,把输出语句调到递归函数之前,让它在去的时候先把事情做了,而不是回来的时候再做事情。
    在这里插入图片描述

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值