解决递归问题:递归方法和非递归方法

代码如下

package DiGuistyle;

public class digui {

    // 非递归方法
    // 设置static静态方法 可以用digui.notDiGui()类的形态调用方法
    static long notDiGui(int n){
        long result=1;
        for(int i=1;i<=n;i++){
            result=result*i;
        }
        return result;
    }

    /*
     * 递归编写方法如下
     */
    static long DiGui(int n){
        if(n==1){
            return 1;
        }

        return DiGui(n-1)*n;
    }

    public static void main(String[] args) {
        System.out.println("非递归方法:"+digui.notDiGui(5));
        System.out.println("递归方法:"+DiGui(5));
    }
}

结果为

非递归方法:120
递归方法:120
时间: 2024-08-11 01:36:23

解决递归问题:递归方法和非递归方法的相关文章

C语言编程 递归方法与非递归方法 实现将参数字符串中的字符反向排列

//题目要求要求:不能使用C函数库中的字符串操作函数(否则本题也没什么意义了啊) <1>非递归方法此方法基本思想是设立两个指针,分别指向字符串的头尾并且依次交换所指向的数据,代码中为left和right源代码: #include<stdio.h> #include<stdlib.h> #include<string.h>//因为要使用strlen()语句 void reverse_string(char str[]) { int temp; char *le

层次遍历递归和非递归方法

层次遍历递归和非递归方法 如何遍历一棵树 有两种通用的遍历树的策略: 深度优先搜索(DFS) 在这个策略中,我们采用深度作为优先级,以便从跟开始一直到达某个确定的叶子,然后再返回根到达另一个分支. 深度优先搜索策略又可以根据根节点.左孩子和右孩子的相对顺序被细分为先序遍历,中序遍历和后序遍历. 宽度优先搜索(BFS) 我们按照高度顺序一层一层的访问整棵树,高层次的节点将会比低层次的节点先被访问到. 下图中的顶点按照访问的顺序编号,按照 1-2-3-4-5 的顺序来比较不同的策略. 层次遍历可以采

非递归方法实现斐波那契数列

//非递归方法实现,如下: #include "stdafx.h" #include <iostream> using namespace std; int main() { int F[100],num; F[0] = 0; F[1] = 1; for (int i = 2; i < 100; i++) { F[i] = F[i - 1] + F[i - 2]; } cout << "请输入你要显示的斐波那契数列的元素数:" <

解决mxGraph放大/缩小在非IE浏览器下overlay图标位置不变化的问题

首先要创建一个工具栏,并为工具栏中的放大.缩小按钮定义事件. <div id="toolbar" style="float:left;margin-top:5px;margin-left: 5px;line-height: 35px;"> <img src="src/images/zoomin.gif" action="zoomIn" title="放大" width="16&q

【分治】快速幂运算-递归与非递归方法

问题 Q: [分治]快速幂运算 时间限制: 1 Sec  内存限制: 128 MB提交: 14  解决: 9[提交][状态][讨论版] 题目描述 邪狼:“老大,好像还是不够油钱啊?”修罗王:“看来只好用我的独门绝技----能力增持术了.”邪狼:“听说能量增持数很霸道的?”修罗王:“没错,假设初始燃油能提供的能量为X,当我对它进行能量增持n秒后,该然后的能量将达到Xn”邪狼:“这么强大的技能啊,简直逆天了,不过怎么之前不见老大用过?”修罗王:“偶尔偷偷用几次没关系,经常用,燃油公司会找我麻烦的.”

递归和非递归方法得到某文件夹中的全部文件和文件夹

/*******************************************************递归实现***************************************************/ /** * 获取某文件夹的所有文件 * @param filePath 获取文件的文件夹路径 * @param myFiles 保存文件的文件集合 * @return  所有的文件及文件夹 * @throws IOException */ public static Arr

递归和非递归方法实现斐波那契

斐波那契数列(Fibonacci sequence),又称黄金分割数列.因数学家列昂纳多·斐波那契(Leonardoda Fibonacci[1]  )以兔子繁殖为例子而引入,故又称为"兔子数列",指的是这样一个数列:0.1.1.2.3.5.8.13.21.34.--.在数学上,斐波纳契数列以如下被以递归的方法定义:F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n≥2,n∈N*)在现代物理.准晶体结构.化学等领域,斐波纳契数列都有直接的应用. 斐波那契递归算法实现.

图的深度优先搜索(DFS)简介与实现(递归与非递归方法)

上一篇刚刚学习了C++图的实现,今天对深度优先搜索(DFS)进行了一定学习,并作出一定实现.在本文中图的实现,以及相应的函数调用(如获得第一个邻接顶点.获得下一个邻接顶点等)均是基于上文中的实现,故如果想参考测试代码,还需导入上文中相应的类定义.关于C++图的实现可参考此处,这里实现了对图的邻接表以及邻接矩阵两种实现,而本文的深度优先搜索对于上面两种实现均是可行的. 当然,对于图的深度优先搜索的相关定义,本文也不再过多赘述,维基的解释应该就足够,下面将探讨其实现. 1.深度优先搜索的非递归实现:

2019.9.25-二分查找代码(递归和非递归方法)

# coding:utf-8#[17, 20, 26, 31, 44, 54, 55, 77, 93]#mid = n/2##[17, 20, 26, 31]#mid = n/2 def binary_search(alist, item): """二分查找,遞歸""" n = len(alist) if n > 0: mid = n//2 if alist[mid] == item: return True elif item <