您的位置:首页 > 编程语言 > C语言/C++

C进阶之递归应用

2017-05-26 11:32 176 查看
// 用递归的方法求字符串长度
#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));
<
b668
span class="hljs-built_in">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语言 递归 应用