递归
阶乘
#include
<stdio
.h
>
int
Fac(int n
)
{
int tmp
;
if (n
== 0)
{
tmp
= 1;
}
else
{
tmp
= n
*Fac(n
- 1);
}
return tmp
;
}
int
main()
{
printf("%d\n", Fac(5));
return 0;
}
斐波那切数列
#include
<stdio
.h
>
int
Fibona(int n
)
{
if (n
== 1 || n
== 2)
{
return 1;
}
else
{
return Fibona(n
- 2) + Fibona(n
- 1);
}
}
int
main()
{
printf("%d\n", Fibona(5));
return 0;
}
斐波那切数列是最不适合递归的数列
汉诺塔
#include
<stdio
.h
>
void Move(char x
, char y
)
{
printf("%c->%c\n", x
, y
);
}
void Hanoi(int n
, char a
, char b
, char c
)
{
if (n
== 1)
{
Move(a
, c
);
}
else
{
Hanoi(n
- 1, a
, c
, b
);
Move(a
, c
);
Hanoi(n
- 1, b
, a
, c
);
}
}
int
main()
{
Hanoi(3, 'A', 'B', 'C');
return 0;
}
转载请注明原文地址: https://mac.8miu.com/read-489816.html