注册送白菜网址大全,注册送白菜官网

注册送白菜网址大全-免费提供各种学习方法! 加入收藏

C++函数:函数的递归调用

核心导读:所谓递归是指函数能够调用自身,它是一种通用的编程技术,为我们解决某些问题提供了极大的方便。下面我们来看一个阶乘的例子,对于一个整数n,其阶乘定义为: n!=123n 0!=1 阶乘也可以采用如下的递归定义: 使用第一个定义,我们计算5的阶乘: 5! = 1 * 2

所谓递归是指函数能够调用自身,它是一种通用的编程技术,为我们解决某些问题提供了极大的方便。下面我们来看一个阶乘的例子,对于一个整数n,其阶乘定义为:

  n!=1×2×3×…×n

  0!=1

  阶乘也可以采用如下的递归定义:

  使用第一个定义,我们计算5的阶乘:

  5! = 1 * 2 * 3 * 4 * 5 = 120

  下面用第二个定义计算5的阶乘:

  5! = 5 * 4!

  = 5 * 4 * 3!

  = 5 * 4 * 3 * 2!

  = 5 * 4 * 3 * 2 * 1!

  = 5 * 4 * 3 * 2 * 1 * 0!

  = 5 * 4 * 3 * 2 * 1 * 1

  = 120

  下面是用第一个定义计算阶乘的C++函数,它是用循环来实现的:

  int Factorial(int n)

  {

  int result = 1;

  for (int i = 1; i <= n; i++) {

  result *= i;

  }

  return result;

  }

  下面再看看用阶乘的第二个定义计算阶乘的C++函数:

  int RecursiveFactorial(int n) {

  if (n == 0)

  return 1;

  else return n * RecursiveFactorial(n - 1);

  }

  RecursiveFactorial函数的结构具有一定的通用性,所有递归调用的函数的结构都是一样的:

  (1) 要有递归终止条件检查,RecursiveFactorial递归终止的条件是n=0。

  (2) 如果不满足递归终止的条件,则返回涉及递归调用的表达式。在RecursiveFactorial函数中,返回的表达式是:n * RecursiveFactorial(n - 1)。

  图5-8给出了函数RecursiveFactorial计算3!的过程:

  图5-8 3!的计算过程



本文来自:注册送白菜网址大全 www.suduxx.com 欢迎记住域名下次再来。

上一篇:c++阶乘函数:天文数的阶乘计算
下一篇:没有了