温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

iOS基础篇——函数的递归调用(C++)

发布时间:2020-06-06 00:37:22 来源:网络 阅读:1510 作者:崔亚允 栏目:移动开发

蓝鸥iOS培训讲师推荐:在C的语言里有基础和高级之分,那么如果要想学好iOS开发就得先基础学起,从认识到函数也是一个学习过程。今天的内容函数的递归调用问题。

函数的递归调用:在调用一个函数的过程中又出现直接或间接的调用该函数本身。举个例子:

iOS基础篇——函数的递归调用(C++)

iOS基础篇——函数的递归调用(C++)

直接调用本函数

下面图是间接调用本函数,在调用f1函数过程中要调用f2函数,然而在调用f2函数过程中还要调用f1函数。

iOS基础篇——函数的递归调用(C++)

从上面的图中可以看出,这两种递归调用都是没有终止的自身调用,很显然,程序中不应该出现这样的没有终止的递归调用,应该出现有限次数的有终止的递归调用,可以用if语句来控制,只有在某一条件成立时才会往下执行递归调用。

递归函数:包含递归调用的函数

举例说明:如有5人坐在一起,问第5个人年龄多大?说是比第4个人长2岁,第4个人的年龄是,比第3个人长2岁,问第3个人,又比第2个人长2岁,问第2个人,又比第1个人长2岁,那么第1个人18,问第5个人的年龄是?(每个人都比前1个人大2岁)如下:

iOS基础篇——函数的递归调用(C++)

那么5个人年龄过表如下,可以看出,当n>1时,求第n个人的年龄的公式是一样的,所以可用一个函数表示他们之间的关系。

iOS基础篇——函数的递归调用(C++)

其中的age函数用来实现上述递归过程,用C++来实现:

iOS基础篇——函数的递归调用(C++)

调用过程如图:

iOS基础篇——函数的递归调用(C++)

下面举个例子求n!事实上就是从1*2*3*...*n

iOS基础篇——函数的递归调用(C++)iOS基础篇——函数的递归调用(C++)

那么有很多问题都可以用递归方法来解决,如上段程序中解决的n!,用程序写出来就很容易理解了,这样一来就很利于同学拉的理解与思路。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI