算法

函数的嵌套

调用过程

算法

 

算法

Eg: main{

A();

}

a()

{

B();

}

B()

{

xxx

teturn;

}

例题

计算s=2^2! + 3^2! (“!”在高等数学里是 阶乘的意思)

#include "stdio.h"
int factorial (int x,int y);
int square (int x,int y);
int main()
{
   int s;
   s = square (2,3);
   printf("%d",s);

}
int square (int x,int y)

   int a;
   a = factorial(x*x,y*y);
   return(a);
}
int factorial (int x,int y)
{
   int i,j,b=1,c=1,d;
   for(i=x;i>0;i--)
  {
       b *= i;
  }
   for(j=y;j>0;j--)
  {
       c *= j;
  }
   d = c+b;
   return(d);
}

函数的递归

定义

在调用一个函数的过程中又出现直接或间接地调用该函数本身,称为函数的递归调用。C语言的特点之一就在于允许函数的递归调用。

eg:求n的阶乘;

#include "stdio.h"
int main()
{
   int recursion (int x);
   int r,n;
   scanf("%d",&n);
   r = recursion(n); 
   printf("%d",r);
   
}
int recursion (int x)
{
   int temp_r;
   if(x==1)
  {
      temp_r=1;
  }
   else
   temp_r = x*recursion(x-1);
   return(temp_r);
   


}

汉诺塔问题

 

上一篇:trait与policy模板技术


下一篇:Python中递归的最大次数