In addition to Weibo, there is also WeChat
Please pay attention
WeChat public account
Shulou
2025-01-18 Update From: SLTechnology News&Howtos shulou NAV: SLTechnology News&Howtos > Development >
Share
Shulou(Shulou.com)06/01 Report--
这篇文章主要介绍C语言中函数递归的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
什么是递归?
递归(recursion):程序调用自身的一种编程技巧。
如何理解函数递归:
1.从调用自身层面:函数递归就是函数自己调用自己。
2.从编程技巧层面:一种方法(把一个大型复杂的程序转换为一个类似的小型简单的程序),这种方法的主要思想就是把大事化小。
递归的两个必要条件
1.存在限制条件,当满足这个限制条件时,递归便不再继续。
2.每次递归调用之后越来越接近这个限制条件。
递归实例实例1(按照顺序打印一个数的整形值)
参考代码(可以先去尝试是否可以解决问题)
画图讲解
注意:在每次打印后都有一个空格。
程序运行结果
完整代码#include void print(int n){if(n>9){print(n/10);}printf("%d ", n);}int main(){int num = 1234;print(num);return 0;}实例2 (使用函数在不创建变量的情况下求字符串长度)
参考代码
画图讲解
程序运行结果
完整代码#include int Strlen(const char* str){if (*str == '\0')return 0;elsereturn 1 + Strlen(str + 1);}int main(){char* p = "abcd";int len = Strlen(p);printf("%d\n", len);return 0;}递归与迭代
迭代是重复反馈过程的活动,其目的通常是为了逼近所需目标或结果。 每一次对过程的重复称为一次"迭代",而每一次迭代得到的结果会作为下一次迭代的初始值。 目前对于c语言来说,迭代可以简单认为是循环结构。
对于递归与迭代,我们同样通过两个实例来理解:
实例1 (求n的阶乘)方法一(使用递归)
参考代码
通过数学方法讲解
完整代码
#include int fac(int n){ if (n == 1) return 1; else return n * fac(n - 1);}int main(){ int n = 0; scanf("%d", &n); int ret = fac(n); printf("%d\n", ret); return 0;}方法二(使用迭代)
完整代码
#include int main(){ int n = 0; scanf("%d", &n); int i = 0; int ret = 1; for (i = 1; i =2,n∈N*)
方法一 (递归求解)
参考代码
通过数学方法求解
运行结果
完整代码
#include int fib(int n){ if (n 2) { c = a + b; a = b; b = c; n--; } return c;}int main(){ int n = 0; scanf("%d", &n); int ret = fib(n); printf("%d\n", ret); return 0;}
运行结果
这里我们可以看出递归和迭代的运行结果是一样的,但是迭代的运行速度要更快。
这时候我们会想:
为什么有时候用递归简便,而有时候用迭代简便呢?
注意:
1.许多问题是以递归的形式进行求解的,这只是因为它比非递归的形式更加清晰。
2.但是这些问题的迭代实现往往比递归实现效率更高,虽然可读性差些。
3.当一个问题相当复杂时,此时递归实现的简洁性便可以弥补它所带来的运行开销。
以上是"C语言中函数递归的示例分析"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!
Welcome to subscribe "Shulou Technology Information " to get latest news, interesting things and hot topics in the IT industry, and controls the hottest and latest Internet news, technology news and IT industry trends.
Views: 0
*The comments in the above article only represent the author's personal views and do not represent the views and positions of this website. If you have more insights, please feel free to contribute and share.
Continue with the installation of the previous hadoop.First, install zookooper1. Decompress zookoope
"Every 5-10 years, there's a rare product, a really special, very unusual product that's the most un
© 2024 shulou.com SLNews company. All rights reserved.