递归:当一个复杂的问题可以分解为诸多简单的问题,并且解决这些问题的代码非常相似时,就可以考虑使用递归算法。
例如 1:求n的阶乘
#include <stdio.h>
int Fact(int n)
{
if(n <= 1)
{
return 1;
}
else
{
return n*Fact(n-1);
}
}
int main()
{
int n = 0;
int sum = 0;
scanf("%d",&n);
sum = Fact(n);
printf("%d",sum);
return 0;
}
2:给一个无符号数,要求从最高位到最低位顺序输出
//输入1234;则输出1 2 3 4
#include <stdio.h>
void print(int n)
{
if(n/9)
{
print(n/10);
}
printf(" %d ",n%10);
}
int main()
{
unsigned int num = 0;
scanf("%u",&n);
print(num);
return 0;
}
3:斐波那契数列
#include <stdio.h>
int Fib()
{
if(n <= 2)
{
return 1;
}
else
{
return Fib(n-1) + Fib(n-2);
}
}
int main() // 1 1 2 3 5 8 13 21 34 55
{
int n = 0;
int m = 0;
scanf("%d",&n);
m = Fib(n);
printf("%d",m);
return 0;
}