函数递归需要满足的两个必要条件:
1.存在限制条件,当满足这个限制条件时,递归就不会再继续。
2.每次递归调用之后会越来越接近这个限制条件。
函数如何递归?这个问题将结合具体的题目进行解析。
题目1:接收一个整型值(无符号),按照顺序打印它的每一位,例如:1234,输出 1 2 3 4
#include<stdio.h>
void print(int n)
{
if(n>9)
{
print(n/10);
}
printf("%d ",n%10);
}
int main()
{
int num=1234;
print(num);
return 0;
}
画图解析:
题目2 :编写函数不允许创建临时变量,求字符串长度。
#include<stdio.h>
int Strlen(const char* str)
{
if(*str=='\0')
return 0;
else return 1+Strlen(str+1);
}
int main()
{
char* p="abc";
int len=Strlen(p);
printf("%d",len);
return 0;
}
画图解析: