斐波那契数列与阶乘---递归实现
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
注意:
定义递归方法时有一条最重要的规定:递归一定要向已知方向递归。
只要一个方法的方法体实现中再次调用了该方法本身,就是递归方法。
斐波那契数列与阶乘---递归实现相关推荐
- 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). ...
- 斐波那契数列的非递归实现
斐波那契数列就是每次最后两个数值相加构成下一个数值,递归定义如下: fibonacci 数列定义: n = 1,2 时,fib(n) = 1 n > 2 时,fib(n) = fib(n-2) ...
- 一只青蛙一次可以跳一级或二级台阶,请问跳n级台阶有多少次跳法之斐波那契数列的非递归写法
对于这个问题 前三次都好算分别为1,2,3次,后面多的话不好简单计算 当第n级台阶时,因为青蛙只能跳一级或二级台阶,所以第n级只有两种方法跳过来, 即,从前一级(n-1)或前两级(n-2),所以调到这 ...
- C 语言实现斐波那契数列,解决递归实现缺陷(算法)
何为斐波那契数列 斐波那契数列(Fibonacci sequence),又称黄金分割数列.因数学家莱昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为&quo ...
- Php斐波那契数列尾递归优化,递归优化的这三种方式你知道吗?
估计找工作的,都会碰到面试官老是问道"递归算法",感同身受,前段时间面试的时候,就有一家问道这个问题,是非常典型的问题.在前面一篇世界上有哪些代码量很少,但很牛逼很经典的算法或项目 ...
- 斐波那契数列 递推 递归 备忘录 动态规划
当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 ...
- 斐波那契数列求和(递归)
递归代码 #include <iostream> using namespace std; int f ( int i ) {if ( i == 1 || i == 2 )return 1 ...
- 【恋上数据结构】递归(函数调用过程、斐波那契数列、上楼梯、汉诺塔、递归转非递归、尾调用)
递归(Recursion) 什么是递归? 函数的调用过程(栈空间) 函数的递归调用过程 递归实例分析(1 + 2 + 3 + ... + 100 的和) 递归的基本思想.使用套路 斐波那契数列 fib ...
- 利用递归、迭代解决斐波那契数列问题与汉诺塔难题
有人说,"普通程序员使用迭代,天才程序员使用递归",真是这样吗? 1.浅谈递归与迭代 <1>递归的基本概念: 程序调用自身的编程技巧称为递归,是函数自己调用自己. 一个 ...
最新文章
- Ubuntu修改root密码以及允许证书和密码登陆
- VueConf China 2021 《Vue3生态进展-尤雨溪》 Reaction
- jQuery.ajax实现根据不同的Content-Type做出不同的响应
- java in think 多态问题
- 创建Maven分布式前台系统架构,写出京动态导航,跨域返Json数据
- Nginx软件优化【转】
- 「 机器人学 」“增量式/绝对式编码器”讲解
- 个人youtube视频观看历史分析
- [转]使用ArcGIS实现WGS84经纬度坐标到北京54高斯投影坐标的转换
- 构建统一CIM数字底盘,实现基于BIM的全流程管控
- 1.8万字详解实时数仓建设方案
- TS中的泛型是什么,适合什么应用场景
- html 手机录视频,手机怎么录制视频 怎么用手机录视频?
- Adobe Acrobat Pro DC 缩小文件大小
- Network (哈工大网课笔记)
- python-字符串补录
- 【行业案例分享】平安云加速银行数字化转型!
- 学会如何更系统地批判性地思考问题
- 5 年前端经验的大佬提供的职业规划
- 物理渗透-Mifare Classic S50(IC)卡分析