package com.demo.hello;public class HelloWorld {//斐波那契数列--递归实现public  static int fibonacci(int index){if(index<0){System.out.println("----------参数不能为负数--------");return -1;}if(index==0){return 0;}else if (index==1) {return 1;}else {return fibonacci(index-1)+fibonacci(index-2);//index>=2}}//n的阶乘--递归实现public static int factorial(int n){if(n<0){System.out.println("----------参数不能为负数--------");return -1;}if(n==0 || n==1){//0!=1 ,1!=1return 1;}else  {// n!=n*(n-1)!;return n*factorial(n-1);}}public static void main(String[] args) {// TODO Auto-generated method stubSystem.out.println(fibonacci(5));System.out.println(factorial(5));}}

运行结果:

5
120

注意:

定义递归方法时有一条最重要的规定:递归一定要向已知方向递归。

只要一个方法的方法体实现中再次调用了该方法本身,就是递归方法。

斐波那契数列与阶乘---递归实现相关推荐

  1. fibonacci斐波那契数列详解 递归求Fn非递归求Fn求n最近的斐波那契数

    斐波那契fibonacci 斐波那契额数列即前两项F(0)和F(1)都是1,之后的每一项都是前两项相加和即F(3)=2,F(4)=3,F(5)=5; 通项公式:F(n+2)=F(n+1)+F(n). ...

  2. 斐波那契数列的非递归实现

    斐波那契数列就是每次最后两个数值相加构成下一个数值,递归定义如下: fibonacci 数列定义: n = 1,2 时,fib(n) = 1 n > 2 时,fib(n) = fib(n-2) ...

  3. 一只青蛙一次可以跳一级或二级台阶,请问跳n级台阶有多少次跳法之斐波那契数列的非递归写法

    对于这个问题 前三次都好算分别为1,2,3次,后面多的话不好简单计算 当第n级台阶时,因为青蛙只能跳一级或二级台阶,所以第n级只有两种方法跳过来, 即,从前一级(n-1)或前两级(n-2),所以调到这 ...

  4. C 语言实现斐波那契数列,解决递归实现缺陷(算法)

    何为斐波那契数列 斐波那契数列(Fibonacci sequence),又称黄金分割数列.因数学家莱昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为&quo ...

  5. Php斐波那契数列尾递归优化,递归优化的这三种方式你知道吗?

    估计找工作的,都会碰到面试官老是问道"递归算法",感同身受,前段时间面试的时候,就有一家问道这个问题,是非常典型的问题.在前面一篇世界上有哪些代码量很少,但很牛逼很经典的算法或项目 ...

  6. 斐波那契数列 递推 递归 备忘录 动态规划

    当n=0时,f(n) = 0 当n=1时,f(n) = 1 当n>1时,f(n) = f(n-1) + f(n-2) 递归算法: [cpp] view plaincopy int fun(int ...

  7. 斐波那契数列求和(递归)

    递归代码 #include <iostream> using namespace std; int f ( int i ) {if ( i == 1 || i == 2 )return 1 ...

  8. 【恋上数据结构】递归(函数调用过程、斐波那契数列、上楼梯、汉诺塔、递归转非递归、尾调用)

    递归(Recursion) 什么是递归? 函数的调用过程(栈空间) 函数的递归调用过程 递归实例分析(1 + 2 + 3 + ... + 100 的和) 递归的基本思想.使用套路 斐波那契数列 fib ...

  9. 利用递归、迭代解决斐波那契数列问题与汉诺塔难题

    有人说,"普通程序员使用迭代,天才程序员使用递归",真是这样吗? 1.浅谈递归与迭代 <1>递归的基本概念: 程序调用自身的编程技巧称为递归,是函数自己调用自己. 一个 ...

最新文章

  1. Ubuntu修改root密码以及允许证书和密码登陆
  2. VueConf China 2021 《Vue3生态进展-尤雨溪》 Reaction
  3. jQuery.ajax实现根据不同的Content-Type做出不同的响应
  4. java in think 多态问题
  5. 创建Maven分布式前台系统架构,写出京动态导航,跨域返Json数据
  6. Nginx软件优化【转】
  7. 「 机器人学 」“增量式/绝对式编码器”讲解
  8. 个人youtube视频观看历史分析
  9. [转]使用ArcGIS实现WGS84经纬度坐标到北京54高斯投影坐标的转换
  10. 构建统一CIM数字底盘,实现基于BIM的全流程管控
  11. 1.8万字详解实时数仓建设方案
  12. TS中的泛型是什么,适合什么应用场景
  13. html 手机录视频,手机怎么录制视频 怎么用手机录视频?
  14. Adobe Acrobat Pro DC 缩小文件大小
  15. Network (哈工大网课笔记)
  16. python-字符串补录
  17. 【行业案例分享】平安云加速银行数字化转型!
  18. 学会如何更系统地批判性地思考问题
  19. 5 年前端经验的大佬提供的职业规划
  20. 物理渗透-Mifare Classic S50(IC)卡分析

热门文章

  1. Matlab变量、分支语句和循环语句
  2. java中的jdk切换(无需卸载原有jdk)
  3. 企业绩效管理系统之平衡记分卡
  4. [Verilog] parameter
  5. 赶走最令人不愉悦的一类BUG,你准备好了么?
  6. Java Web学习(一)Web基础
  7. Ruby: 延迟计算与优化
  8. Win10自动更新关闭方法
  9. 剑指offer-二叉搜索树的后序遍历序列
  10. Oracle中Merge into的用法实例讲解