程序调用自身的编程技巧称为递归( recursion)。递归做为一种算法在程序设计语言中广泛应用。 一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的能力在于用有限的语句来定义对象的无限集合。一般来说,递归需要有边界条件、递归前进段和递归返回段。当边界条件不满足时,递归前进;当边界条件满足时,递归返回。——这是百度百科说的。

其实说白了,就是递归方法本身调用自己而进行的运算,下面举个例子说明一下这个例子就是很著名的——斐波那契数列。

0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368……

可以看出来第三个数就是前面两个数相加从而得到的。

如果使用正常的循环进行解决的话就是这样:

public class FeiBo{

public static void main(String[] args) {

int num1=0;

int num2=1;

int numn=1;

int n=10;

for (int i = 3; i <=n; i++) {

numn=num1+num2;

num1=num2;

num2=numn;

}

System.err.println(n+"个数的结果为:"+numn);

}

}

运行结果为:

10个数的结果为:34

这是使用正常的循环方法进行运算,如果使用递归的话就是一下这样:

public static int Recursion(int n){

if(n==1){

return 0;

}

if(n==2){

return 1;

}

return Recursion(n-1)+Recursion(n-2);

}

递归需要结束条件,到情况下递归就不需要继续调用,结束递归。上面案例结束条件就是当n=1或者2的时候,就返回0或者1,而不是继续调用递归方法本身了。

递归最主要的两个条件就是,自己调用自己,结束递归的条件。

因为递归是自己调用自己所以浪费资源大,运行时间比循环长很多,运行慢,效率底。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持聚米学院。

java实现斐波那契数列求和_Java递归实现斐波那契数列相关推荐

  1. java斐波那契 递归_Java递归实现斐波那契数列

    程序调用自身的编程技巧称为递归( recursion).递归做为一种算法在程序设计语言中广泛应用. 一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一 ...

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

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

  3. java数列求和_java中关于数列求和的计算方法

    题目描述: 输入n和a,求a+aa+aaa+-aa-a(n个a),如当n=3,a=2时,2+22+222的结果为246. java相关视频教程:java教学视频 输入: 包含两个整数,n和a,含义如上 ...

  4. 程序 数列求和 c语言,[编程入门]有规律的数列求和-题解(C语言代码)

    第一种:我们发现其实分子和分母都是斐波那契数列(从第三项开始,每一项等于前两项之和),所以我们可以定义两个数组,分别来存放分子和分母.然后两个数组里的数按位置相除累加. 参考代码: #include ...

  5. java随机产生若干个偶数完成求和_java - 创建随机生成器以生成并计算奇数对偶数 - 堆栈内存溢出...

    我真的非常困惑. 我已经进行过几次网络搜索,但找不到任何可以帮助我解决这一精确作业问题的信息. 涉及:Java,while循环,随机生成数字和扫描仪控制台输入. 我们必须完成main方法中的代码,以便 ...

  6. 第六章第十三题(数列求和)(Sum series)

    *6.13(数列求和)编写一个方法对下面的数列求和: 编写一个测试程序,显示下面的表格: i                          m(i) ----------------------- ...

  7. 斐波那契数列求和——C语言(小白版)

    ** 斐波那契数列求和--C语言(小白版) ** 题目要求 斐波那契数列 1, 1, 2, 3, 5, 8, 13, 21, 34--不难发现当n>2时,an=an-1+an-2 要求:当屏幕输 ...

  8. 斐波那契数列求和公式

    斐波那契数列指的是这样一个数列:1.1.2.3.5.8.13.21.-- 这个数列从第三项开始,每一项都等于前两项之和.它的通项公式为:(见下图)(又叫"比内公式",是用无理数表示 ...

  9. 【数论】斐波那契数列求和公式

    斐波那契数列: F(n)=F(n-1)+F(n-2); 其中,      F1=1, F2=1. 斐波那契数列求和公式:          Sn  =     2F(n)  +  F(n-1) -  ...

  10. 从斐波那契数列求和想到的俗手、本手和妙手

    数列求和的通常做法,用先求出数列的通项公式,然后循环累加求和.先以奇数集求和为例: 奇数列 fn = 2n-1,通项公式及求和公式都写成函数,即: def fn(n):return 2*n-1def ...

最新文章

  1. 高盛想要做华尔街的谷歌
  2. Tomcat 输入http://localhost:8080打不开网页的解决方法
  3. java批量转换图片格式
  4. 串口通讯编程一日通1(整合资料) .
  5. 【Java】辨析jvm.dll、java.exe、javaw.exe、javaws.exe
  6. 大数据— Hadoop
  7. 电商库存锁_解密 Redis 助力双 11 背后电商秒杀系统
  8. 描述最常用的5种http方法的用途_RESTful API系列之HTTP基础
  9. access数据库窗体设计实验报告_来自窗体控件的数值条件(VBA)
  10. Hive Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
  11. android api版本 闪退_解决 Android 升级 SDK API 27 过程中遇到的问题
  12. QQ号能否成为互联网通行证?
  13. Cisco ASDM-IDM 安装配置for Windows10
  14. android 5.1一键root工具箱,最新的安卓5.1.1 ROOT教程(不需要刷第三方内核)
  15. chemdraw怎么连接两个结构_怎样在ChemDraw中绘制不定结构
  16. JAVA求三角形的面积
  17. 检查计算机无法更新,Win7提示Windows Update当前无法检查更新,因为未运行服务解决方法...
  18. 在拍拍二手爱回收出过一次手机后,我才体验到回收二手的快乐
  19. Jenkins凭据导出
  20. msf渗透命令和后渗透攻击

热门文章

  1. webservice的wsdl文件怎么生成
  2. 使用 AppleALC 驱动黑苹果声卡
  3. Vscode配置ftp连接远程服务器
  4. HTML三种对密码加密的方法
  5. html个人主题制作,个人网页制作
  6. macOS Monterey 12.0 Beta5 (21A5304g) 虚拟机 ISO 镜像
  7. ibm服务器日志文件提取,IBM X3850 X5服务器搜集日志
  8. Red5流媒体服务器搭建
  9. haneWIN NFS Server for Windows
  10. WIFI抓包理论篇——802.11帧与EthernetII帧的差别