一代码比较
1 代码示例1——朝小的一端递归
public class Recursive1 { public static int fn(int n) { if (n == 0) { return 1; } else if (n == 1) { return 4; } else { // 方法中调用它自身,就是方法递归 return 2 * fn(n - 1) + fn(n - 2); } } public static void main(String[] args) { // 输出fn(10)的结果 System.out.println(fn(10)); } }
2 运行结果
10497
3 代码示例2——朝大的一端递归
public class Recursive2 { public static int fn(int n) { if (n == 20) { return 1; } else if (n == 21) { return 4; } else { // 方法中调用它自身,就是方法递归 return fn(n + 2)- 2 * fn(n + 1) ; } } public static void main(String[] args) { // 输出fn(10)的结果 System.out.println(fn(10)); } }
4 运行结果
-3771
二 结果分析比较
代码示例1是这样一道数学题:f(0)=1,f(1)=4,f(n+2)=2*f(n+1)+f(n),其中n大于0的整数。
代码示例2是这样一道数学题:f(20)=1,f(21)=4,f(n)=f(n+2)-2f(n+1),其中n是大于0的整数。
代码示例1和代码示例2都是朝着已知方向递归,所以不存在问题,如果沿着未知方向递归,势必引起死循环。
相关推荐
python实现汉诺塔--递归(csdn)————程序
算法思想——递归与分治 算法思想——递归与分治
斐波那契递归时间和非递归时间的比较(csdn)————程序
c++实现二叉树的4种遍历(递归和非递归)(csdn)————程序
N皇后问题求解,分别是递归方法实现和非递归方法实现,后者采用回溯方法,C语言实现的
汉诺塔——经典的递归 *实现移动函数 *递归实现汉诺塔函数
递归方法实现斐波那契数列
递归逆转广义表————————
实现了汉诺塔的递归算法,求取最大公约数等问题,还有输出数字的不同进制等功能,c++控制台应用程序
2. 对于任意给定的输入串(词法记号流)进行语法分析,递归下降方法和非递归预测分析方法可以任选其一来实现。 3. 要有一定的错误处理功能。即对错误能提示,并且能在一定程度上忽略尽量少的记号来进行接下来的分析...
RSA基本递归算法,简单,基本,快速,大模运算的基本方法
快速选择非递归与递归算法实现
递归下降分析法 一、实验目的: 根据某一文法编制调试递归下降分析程序,以便对任意输入的符号串进行分析。本次实验的目的主要是加深对递归下降分析法的理解。 二、实验说明 1、递归下降分析法的功能 词法分析器...
C语言中递归是重中之重的部分,多数用于求解N!等含有迭代性质的问题,此文档详细介绍了递归算法,实用。
c++ 递归 阶乘 n!c++ 递归 阶乘 n!c++ 递归 阶乘 n!c++ 递归 阶乘 n!c++ 递归 阶乘 n!c++ 递归 阶乘 n!c++ 递归 阶乘 n!c++ 递归 阶乘 n!c++ 递归 阶乘 n!c++ 递归 阶乘 n!c++ 递归 阶乘 n!c++ 递归 阶乘...
本文实例讲述了C++使用递归和非递归算法实现的二叉树叶子节点个数计算方法。分享给大家供大家参考,具体如下: /*求二叉树叶子节点个数 -- 采用递归和非递归方法 经调试可运行源码及分析如下: ***/ #include #...
宏递归宏递归宏递归宏递归宏递归宏递归宏递归宏递归宏递归宏递归
C#递归C#递归C#递归C#递归C#递归C#递归C#递归C#递归C#递归
全排列算法有两个比较常见的实现:递归排列和字典序排列。 (1)递归实现 从集合中依次选出每一个元素,作为排列的第一个元素,然后对剩余的元素进行全排列,如此递归处理,从而得到所有元素的全排列。 (2)字典...
用c# 递归方法,遍历目录,输入一个路径,能输出此路径下的全部文件和文件夹里的内容