// 用递归的方法求字符串长度
#include <stdio.h>
int strlen(const char* s)
{
if('\0' == *s)
return 0;
else
return 1+strlen(s + 1);
}
int main()
{
const char arr[] = "softer school";
int len = 0;
len = strlen(arr);
printf("%d\n",len);
printf("%d\n", strlen("abc"));
printf("%d\n", strlen(""));
return 0;
}
// 用递归的方法求斐波拉契数列 1,1,2,3,5,8,13,21...
#include <stdio.h>
int fac(int n)
{
if((1 == n) || (2 == n))
{
return 1;
}
else
{
if(3 <= n)
{
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(7));
printf("%d\n", fac(-10));
return 0;
}
// 汉诺塔问题求解
#include <stdio.h>
void move(int n, int a, int b, int c)
{
if( 1 == n )
{
printf("%d --> %d\n", a, c);
}
else
{
move(n-1, a, c, b);
move(1, a, b, c);
move(n-1, b, a, c);
}
}
int main()
{
move(3, 1, 2, 3);
return 0;
}
C进阶之递归应用
最新推荐文章于 2022-02-02 14:10:44 发布