我是靠谱客的博主 顺心黑猫,最近开发中收集的这篇文章主要介绍递归算法详解——递归算法的三要素以及例题分析1递归的三要素2递归案例,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

目录

  • 1递归的三要素
    • 1.1明确函数的功能
    • 1.2递归的结束条件
    • 1.3函数的等价关系
  • 2递归案例

递归算法(英语:recursion algorithm)是指一种通过重复将问题分解为同类的子问题而解决问题的方法。

1递归的三要素

递归的三要素

  • 明确函数的功能
  • 递归的结束条件
  • 函数的等价关系

接下来利用 n n n阶乘来讲解这三个条件
任何大于等于1 的自然数 n n n阶乘表示方法:
n ! = n × ( n − 1 ) ! ( n > 1 ) 0 ! = 1 ( n = 0 ) n!=n times(n-1)! quad (n > 1) \ 0! = 1 quad (n = 0) n!=n×(n1)!(n>1)0!=1(n=0)

1.1明确函数的功能

明确我们要写的函数的功能是实现 n n n的阶乘,定义函数如下:

// 定义n阶乘函数
 public int factorial(int n){
 
 }

1.2递归的结束条件

由阶乘的表示方法可以看出当 n = 0 n = 0 n=0时是阶乘的最小值,此时结束继续往下计算阶乘,可以把 n = 0 n = 0 n=0当做递归的结束条件。同样,当 n = 1 n = 1 n=1时, 1 ! = 1 1! = 1 1!=1也可以作为递归的结束条件。

// 定义n阶乘函数
 public Integer factorial(int n){
 	// 递归的结束条件
     if (n == 1) return 1;

 }

1.3函数的等价关系

第三要素就是,我们要不断缩小参数的范围,缩小之后,我们可以通过一些辅助的变量或者操作,使原函数的结果不变。
由阶乘的表达式可以看出 n n n的阶乘与 n − 1 n -1 n1阶乘存在的关系式为 n ! = n × ( n − 1 ) ! ( n > 1 ) n!=n times(n-1)! quad (n > 1) n!=n×(n1)!(n>1)若已知 n − 1 n -1 n1的阶乘,记为 f ( n − 1 ) f(n - 1) f(n1),则当前的 n n n的阶乘可以记为 f ( n ) = n × f ( n − 1 ) ( n > 1 ) f(n) = n times f(n -1)quad (n > 1) f(n)=n×f(n1)(n>1)
综上递归的三个要素可以得出求 n n n阶乘的递归函数为

// 定义n阶乘函数
 public Integer factorial(int n){
 	// 递归的结束条件
     if (n == 1) return 1;
	return n * factorial(n - 1);
 }

2递归案例

更多的递归案例讲解点击此处.

最后

以上就是顺心黑猫为你收集整理的递归算法详解——递归算法的三要素以及例题分析1递归的三要素2递归案例的全部内容,希望文章能够帮你解决递归算法详解——递归算法的三要素以及例题分析1递归的三要素2递归案例所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部