函数递归 函数自己调用自己就叫递归。它通常把一个大型复杂的问题来转化为一个与原问题相似的规模较小的问题来求解(思考方式)。 递归的两个必要条件 存在限制条件,当满足这
函数递归
函数自己调用自己就叫递归。它通常把一个大型复杂的问题来转化为一个与原问题相似的规模较小的问题来求解(思考方式)。
递归的两个必要条件
存在限制条件,当满足这个限制条件的时候,递归便不再继续
每次递归调用之后越来越接近这个限制条件
例子 栈溢出:
#include <stdio.h>
int main()
{
printf("hehe\n");
main();
return 0;
}//递归常见的错误:栈溢出,没有限制条件容易栈溢出
此代码没有限制条件所以栈溢出
例子利用递归求字符长度:
int my_strlen(char* str)
{
if(*str !='\0')
return 1+my_strlen(str+1);
else
return 0;
}
#include<stdio.h>
int main(){
char arr[]="bit";
int len = my_strlen(arr);
printf("%d\n",len);
}
my_strlen 函数经过不断调用后将字符完整的输出直到数列到“\0”后终止再经过向上回归后计算出字符的长度。