函数递归代码

己写一个求字符串长度的函数

#include<stdio.h>
 int my_strlen(char* str)
 {
 	if(*str!='\0')
 	{
 	return	my_strlen(str+1)+1;
	}
    else
    return 0;
 } 
 int main()
 {
 	char arr[]="china";
 	int x=my_strlen(arr);
 	printf("%d\n",x);
 	return 0;
  }

函数求n的阶乘

#include<stdio.h>
  int fac1(int x)
  {
  	if(x>1)
	  {
	  	return fac1(x-1)*x;
	  } 
	   else if(x<=1)
	   return 1;
  }
  int main()
  {
  	int n,ret;
  	scanf("%d",&n);
  	ret=fac1(n);
  	printf("%d",ret);
  	return 0;
   }

斐波那契数列(第n个斐波那契数等于前两个之和) 

 函数递归求斐波那契数列 

#include<stdio.h>
   int fab(int x)
{
   if(x<=2)
   return 1;
   else
   return fab(x-1)+fab(x-2);
}

   int main()
   {
   	unsigned int n,ret;
   	scanf("%d",&n);
   	ret=fab(n);
   	printf("ret=%d\n",ret);
   	return 0;
   }

函数迭代求斐波那契数列

#include<stdio.h>
   int fab2(int x)
   {
   	int a=1;
   	int b=1;
   	int c=1;
   	while(x>2)
   	{
   		c=a+b;
   		a=b;
   		b=c;
   		x--;
	}
	return c;
   }
   int main()
   {
   	int n,ret;
   	scanf("%d",&n);
   	ret=fab2(n);
   	printf("%d",ret);
   	return 0;
	}


上一篇:sizeof-strlen


下一篇:strlen和sizeof