目录一、递归的数学思想二、递归函数三、递归函数设计技巧四、递归函数设计示例一五、递归函数设计示例二六、递归函数设计示例三七、小结一、递归的数学思想 递归是一种数学上分而自治的思想 递
递归是一种数学上分而自治的思想
递归需要有边界条件
递归将大型复杂问题转化为与原问题相同但规模较小的问题进行处理。
函数体内部可以调用自己
递归函数
递归函数是递归的数学思想在程序设计中的应用
递归模型的一般表示法
用递归的方法编写函数求字符串长度
代码如下:
#include <stdio.h>
int strlen_r(const char* s)
{
if( *s )
{
return 1 + strlen_r(s+1);
}
else
{
return 0;
}
}
int main()
{
printf("%d\n", strlen_r("abc"));
printf("%d\n", strlen_r(""));
return 0;
}
输出结果如下:
斐波拉契数列递归解法
1,1,2,3,5,8,13,21,...
代码如下:
#include <stdio.h>
int fac(int n)
{
if( n == 1 )
{
return 1;
}
else if( n == 2 )
{
return 1;
}
else
{
return fac(n-1) + fac(n-2);
}
return -1;
}
int main()
{
printf("%d\n", fac(1));
printf("%d\n", fac(2));
printf("%d\n", fac(9));
return 0;
}
输出结果如下:
汉诺塔问题
汉诺塔问题分解
代码如下:
#include <stdio.h>
void han_move(int n, char a, char b, char c)
{
if( n == 1 )
{
printf("%c --> %c\n", a, c);
}
else
{
han_move(n-1, a, c, b);
han_move(1, a, b, c);
han_move(n-1, b, a, c);
}
}
int main()
{
han_move(3, 'A', 'B', 'C');
return 0;
}
输出结果如下:
到此这篇关于C语言深入分析递归函数的实现的文章就介绍到这了,更多相关C语言 递归函数内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
--结束END--
本文标题: C语言深入分析递归函数的实现
本文链接: https://www.lsjlt.com/news/146210.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0