您好,登录后才能下订单哦!
蓝鸥iOS培训讲师推荐:在C的语言里有基础和高级之分,那么如果要想学好iOS开发就得先基础学起,从认识到函数也是一个学习过程。今天的内容函数的递归调用问题。
函数的递归调用:在调用一个函数的过程中又出现直接或间接的调用该函数本身。举个例子:
直接调用本函数
下面图是间接调用本函数,在调用f1函数过程中要调用f2函数,然而在调用f2函数过程中还要调用f1函数。
从上面的图中可以看出,这两种递归调用都是没有终止的自身调用,很显然,程序中不应该出现这样的没有终止的递归调用,应该出现有限次数的有终止的递归调用,可以用if语句来控制,只有在某一条件成立时才会往下执行递归调用。
递归函数:包含递归调用的函数
举例说明:如有5人坐在一起,问第5个人年龄多大?说是比第4个人长2岁,第4个人的年龄是,比第3个人长2岁,问第3个人,又比第2个人长2岁,问第2个人,又比第1个人长2岁,那么第1个人18,问第5个人的年龄是?(每个人都比前1个人大2岁)如下:
那么5个人年龄过表如下,可以看出,当n>1时,求第n个人的年龄的公式是一样的,所以可用一个函数表示他们之间的关系。
其中的age函数用来实现上述递归过程,用C++来实现:
调用过程如图:
下面举个例子求n!事实上就是从1*2*3*...*n
那么有很多问题都可以用递归方法来解决,如上段程序中解决的n!,用程序写出来就很容易理解了,这样一来就很利于同学拉的理解与思路。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。