1.函数的递归
什么是函数的递归?
程序调用自身的编程技巧称为递归( recursion)。
递归做为一种算法在程序设计语言中广泛应用。 一个过程或函数在其定义或说明中有直接或间接调用自身的
一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,
递归策略:只需以量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。
递归的主要思考方式在于:把大事化小
1.1.递归的两个必要条件
存在限制条件,当满足这个限制条件的时候,递归便停止。
每次递归调用之后都越来越接近这个限制条件。
1.2.递归的练习
![](https://i-blog.csdnimg.cn/blog_migrate/a5a523f20fc27b8189aae52988b4b655.png)
![](https://i-blog.csdnimg.cn/blog_migrate/e968a269f6d1859b7929aa63eeffa2bb.png)
![](https://i-blog.csdnimg.cn/blog_migrate/2632a93b1245a5eb036358c68305fb6c.png)
1.题目要求:接受一个整形值(无符号),按照顺序打印他的每一位,例如:输入:1234,输出 1 2 3 4
![](https://i-blog.csdnimg.cn/blog_migrate/3fb8ddb9e10a036379dba7f74b32d94f.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0656fe71d0bf4522e3827bcd89683b7f.png)
2.编写一个可以求字符串的长度的函数,意思就是写一个函数和strlen()一样的功能
![](https://i-blog.csdnimg.cn/blog_migrate/856012fe6afc6890764882aaded90b6a.png)
![](https://i-blog.csdnimg.cn/blog_migrate/eb364f5c4529ef5c1319c466d705c0c7.png)
2.函数的迭代
1.写一个函数计算阶乘
#include <stdio.h>
int jiechen (int n )
{
if(n==1)
{
return 1;
}
else
{
return n*jiechen(n-1);
int main()
{ int i = 0;
int ret = jiechen(i);
scanf("%d",n);
printf("ret = %d",ret);
return 0;
}
2.写一个斐波那契数函数可以求出第n个斐波那契数
#include <stdio.h>
int fib(int n)
{
if(n<=2)
{
return 1;
}
if(n>2)
{
return fib(n-1)+fib(n-2);
}
}
int main()
{
int i = 0;
i = fib(n);
printf("%d",i);
}