java 递归方法卡住_递归算法怎么理解

java 递归方法卡住_递归算法怎么理解Java递归方法1.说明定义:一个方法体内调用它自己方法递归是一种隐式的循环,它会重复的执行某段代码,但这种重复执行无须循环控制递归一定要向着已知的方向递归,否则这种递归就变成了无穷递归,类似于死循环2.code举例publicclassRecursionTest{publicstaticvoidmain(String[]args){RecursionTestx=newRecursionTest();System.

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

Java 递归方法

1.说明

定义:一个方法体内调用它自己

  • 方法递归是一种隐式的循环,它会重复的执行某段代码,但这种重复执行无须循环控制
  • 递归一定要向着已知的方向递归,否则这种递归就变成了无穷递归,类似于死循环

2.code 举例

public class RecursionTest { 
   
    public static void main(String[] args) { 
   
        RecursionTest x = new RecursionTest();
        System.out.println(x.getSum(100));
        System.out.println(x.getSum1(100));
        System.out.println(x.getF(10));
        System.out.println(x.Fibonacci(6));

    }
    // 计算1-n所有自然数的和
    public int getSum(int n) { 
   
        if(n ==1) { 
   
            return 1;
        }else { 
   
            return n + getSum(n -1);
        }
    }
    // 计算1-n所有自然数的积
    public int getSum1(int n) { 
   
        if(n ==1) { 
   
            return 1;
        }else { 
   
            return n * getSum(n -1);
        }
    }

    // 已知一个数列 f(0) = 1,f(1) = 4,f(n+2)=2*f(n+1) + f(n)
    //其中n 是大于0的整数 求f(n)的值
    public int getF(int n) { 
   
        if(n == 0) { 
   
            return 1;
        }else if(n == 1){ 
   
            return 4;
        }else { 
   
            return 2 * getF(n-1) + getF(n-2);
        }
    }

    // 计算斐波那锲数列的第N个值(一个数等于前两个数的和)
    public int Fibonacci(int n) { 
   
        if (n == 1) { 
   
            return 1;
        }else if(n == 2) { 
   
            return 1;
        }else { 
   
            return Fibonacci(n-1) + Fibonacci(n-2);
        }
    }
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/192669.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 利用反射动态调用类成员

    利用反射动态调用类成员

    2021年7月22日
    63
  • python2 nonlocal_python unboundlocalerror

    python2 nonlocal_python unboundlocalerrornonlocal关键字用来在函数或其他作用域中使用并修改外层(非全局)变量。意义:nonlocal使用能够弥补global和闭包的两个问题。对于global,只能使用全局变量,对于嵌套函数中的内层函数而言,无法通过global使用外层函数,通过nonlocal就可以,当然直接读取也可以(闭包)。对于闭包,内层函数可以读取外层函数的变量,但是如果在内部函数中尝试进行修改外部变量,且外部变量为不可变类型,则需要在变量前加nonlocal,如果变量为可变类型,则不需要添加nonlocal。”’nonl

    2022年9月6日
    6
  • C语言中函数的基本知识

    C语言中函数的基本知识接着上次的数组,这次我们来简单的讲讲C语言里面的函数。函数和指针这两大块,在C语言中占据着重要的位置,是C语言中的主体和核心,所以它们的重要性也就不言而喻了。那什么是函数呢?1:函数是C语言的模块,一块块的,有较强的独立性,可以相互调用,也就是说,你可以在函数A中调用函数B,又可在函数B中调用函数C,不仅如此,你还可以调用函数自身(递归)。2:函数是完成一个个特定任务的语句集合,它能完…

    2022年6月26日
    29
  • Java 实习生(月薪 3k-5k 水平)应具备哪些知识、能力?给学弟学妹们支招

    我10年前在一家外企做Java实习生的时候,就差不多这个水平((月薪3k-5k),10多年过去了,可以稍微把目标放得大一点,比如说8k-10k,我觉得也不是不可能!在一线城市找一份靠谱的实习工作我觉得还是不难的,怕就怕有些学弟学妹盲目乐观,以为能找一份不错的实习工作,结果碰一鼻子灰,最后心灰意冷,可能就转行了。或者盲目悲观,大四了呀,学历不咋滴呀,整天恍恍惚惚的,无心学习,最后也转行了。注意注意,只要现在立刻马上开始按照我说的学习路线开始,就一点不晚。第一,IntellijIDEA、G

    2022年4月10日
    72
  • ESLint-的基本介绍[通俗易懂]

    ESLint-的基本介绍[通俗易懂]什么是eslintESLint是一个代码检查工具,用来检查你的代码是否符合指定的规范(例如:=的前后必须有一个空格)。规范行业推荐的规范;在创建项目时,我们使用的是JavaScriptStandardStyle代码风格的规则自定义的规范。你和你的团队可以自行约定一套规范使用ESLint的好处在于:多人协作时代码风格统一eslint是法官,Standard是法律vue-cli工具在创建项目时提供选项,我们前面在创建项目时选中了它,所以它在本项目中是直接生效

    2022年6月18日
    35
  • 一比一还原axios源码(四)—— Axios类

    axios源码的分析,到目前为止,算上第0章已经四章了,但是实际上,还都没有进入axios真正的主线,我们来简单回顾下。最开始我们构建了get请求,写了重要的buildURL方法,然后我们处理请求体请

    2022年3月25日
    43

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号