c++递归教程

本文通过讲述一个老和尚讲故事的无限循环,介绍了递归的概念。递归是指函数自身在其定义中调用自身,通过增加参数n控制循环次数。通过理解递归,可以解决类似输出特定次数序列的问题。
摘要由CSDN通过智能技术生成

递归是什么?

先给大家讲个小故事:

从前有座山,山里有座庙,庙里有个老和尚在给小和尚讲故事:“从前有座山,山里有座庙 ,庙里有个老和尚在给小和尚讲故事:”从前有座山,山里有座庙,庙里有个老和尚在给小和尚讲故事……

我们发现,如果老和尚没有被别人打扰,这个故事可以无限地讲下去

我们也可以c++来表现这一过程:

void f(){
	cont<<"从前有座山,山里有座庙,庙里有个老和尚在给小和尚讲故事:“";
	//输出故事 
	f(); 
	//这里很重要,在第一层f()函数运行后,会输出从前有座山……
	//输出完后,函数f()会执行f()函数,在这时候,第一层f()函数
	//已经结束了,接下来,程序会运行第二层f()函数,也就是f()函数
	//执行的时候,有一次运行了f()…… 
}

注意!这个地方一定要懂,不然接下来的你全听不懂

如果我们运行f()函数,会发生什么?

程序也会和老和尚一样,一直讲故事,永远停不下来,如果想让程序停下来,只能自己关掉

如果,我想让程序能像循环一样停下来,要怎么办呢?

我们只要这样写就好了:

void f(n){
	if(n==0)return;
	cont<<"从前有座山,山里有座庙,庙里有个老和尚在给小和尚讲故事:“";
	f(n-1); 
}

看似只多写了几个字,其实暗藏玄机,我们看,现在这个函数增加了变量n,只要n等于0,就不会输出,直接结束这个函数(函数f(0)会直接结束),而每次,我们使用函数的时候,n都会-1,所以,这个函数是会结束的

如果运用好这种函数的写法,我们甚至能解决题目,比如题目让我们输出n个1,我们就可以用这样的函数解决这道题

这样自己调用自己来解决问题的解题方法,就叫做递归

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值