(创建于2017/8/16)
1.前置递归和后置递归
前置是倒叙,后置是正序
2.递归十进制转二进制
#include<stdio.h>
#include<string.h>
int to2(int n)
{
int i = n % 2;
if (n>0)
{
printf("%d\n", i);
to2(n / 2);
}
}
int main()
{
to2(11);
}
3.递归求字符串长度
#include<stdio.h>
#include<string.h>
int getstrlen(char s[], int n)
{
if (s[n]) //以第n个位置的元素是否为0作为递归结束你的标记
{
return getstrlen(s, n + 1);
}
else
{
return n;
}
}
int main()
{
char s[] = "renzhenmingshigehaoren";
printf("长度是:%d\n",getstrlen(s, 0));
}
4.递归求斐波那契数列中某一个index的值
#include<stdio.h>
#include<string.h>
//斐波那契数列,0,1开头,后边的规律是每个数字等于前两个数字的和
int fib(int m) {
if (m == 0)
{
return 0;
}
else if (m == 1)
{
return 1;
}
else
{
return fib(m - 1) + fib(m-2);
}
}
int main()
{
printf("斐波那契数列中第%d个数是:%d\n",6,fib(6));
}