递归
- 递归打印一个数的每一位
void Print(int a)
{
if(a > 9)
{
Print(a/10);
}
printf("%d ",a%10);
}
- 递归求一个数的阶乘
int factorial(int n)
{
if(n <= 1)
return 1;
else
return n * factorial(n-1);
}
- 递归求字符串大小
int Strlen(const char*str)
{
if(*str == '\0')
return 0;
else
return 1 + Strlen(str + 1);
}
- 递归实现字符串的逆序
void reverse(char*str)
{
char tmp = str[0];
int len = strlen(str);
str[0] = str[len - 1];
str[len - 1] = '\0';
if(strlen(str + 1) >= 2)
reverse(str + 1);
str[len - 1] = tmp;
}
- 递归求一个数的每位数字之和
int DigitSum(int a)
{
if(a > 9)
{
return DigitSum(a/10) + a%10;
}
else
return a;
}
- 递归求第n个斐波那契数
int fib(int n)
{
if(n <= 2)
return 1;
else
return fib(n-1) + fib(n-2);
}