Java之递归和迭代用法

  • e0_487530
    了解作者
  • 8.4KB
    文件大小
  • zip
    文件格式
  • 0
    收藏次数
  • VIP专享
    资源类型
  • 0
    下载次数
  • 2022-05-06 04:56
    上传日期
NULL 博文链接:https://cxl2012.iteye.com/blog/2059218
algorithmDemo.zip
内容介绍
package com.cxl.algorithm; /** * 斐波那契数列 * */ public class FibonacciSequenceTest { private static final int a1 = 1;//第一项默认值 private static final int a2 = 2;//第二项默认值 public static void main(String[] args) { //递归 System.out.println("递归求和:" + FibonacciSequenceTest.getSumByFibonacciSequence(45)); //迭代 System.out.println("迭代求和:" + FibonacciSequenceTest.getSumByNonRecursive(45)); } /** * 斐波那契数列求和:迭代 * @return */ public static int getSumByNonRecursive(int n) { long startTime = System.currentTimeMillis(); if(n == 1) { return a1; } int sum = a1 + a2; if(n == 2) { return sum; } int firstNum = a1; int secondNum = a2; int lastNum = 0; for(int i = 3; i <= n ;i++) { //迭代关系(an = an-2 + an-1; an-2=an-1; an-1=an;) lastNum = firstNum + secondNum; firstNum = secondNum; secondNum = lastNum; sum += lastNum; } System.out.println("非递归求和耗时:" + (System.currentTimeMillis() - startTime) + "ms");//0ms return sum; } /** * 斐波那契数列前n项和(sn = s(n-1) + s(n-2)) 递归 * @return */ public static int getSumByFibonacciSequence(int n) { long startTime = System.currentTimeMillis(); if(n == 1) { return a1; } int sum = 1; int lastNum = 0; for(int i = 2; i <= n; i++) { lastNum = FibonacciSequenceTest.getLastNum(i); sum += lastNum; } System.out.println("递归求和耗时:" + (System.currentTimeMillis() - startTime) + "ms");//14839ms return sum; } /** * 第n项的值(递推公式:an = a(n - 1) + a(n - 2)) * 1 2 3 5 8 13 21 * @param n * @return */ public static int getLastNum(int n) { if(n == 1) { return a1; } if(n == 2) { return a2; } int lastListNum = getLastNum(n - 1) + getLastNum(n - 2); return lastListNum; } }
评论
    相关推荐
    • CasseBrique:https
      CasseBrique:https
    • 使用socket post 数据到httphttps
      使用socket post 数据到httphttps
    • nodejs http-server开启https的证书
      https证书文件,nodejs http-server开启https的证书,可以直接在本地启动https的协议,方便部署和使用。
    • http https 切换
      http https切换代码,能够实现网站在传输信息的过程中不易遭人盗取
    • Http2Https-crx插件
      将书签中的http转换为https 害怕用https书签替换旧的http书签? 随着许多网站迁移到https,旧的http书签使星标图像为空。 搜索并转换为https! ****************************************************** ***********...
    • LocomotiveCMS https to http-crx插件
      语言:English 将登录网址从https替换为http以进行开发 此扩展程序供使用机车cms开发应用程序时供个人使用。 为了易于在开发模式下使用,此扩展程序将https登录网址替换为http
    • http:https的镜像
      框架HTTP
    • https镜像
      scp镜 SCP基金会部分界面https //
    • CookieIsolator:分离 HTTPHTTPS cookie
      松散隔离:HTTP cookie 只能在 HTTP 通道中发送,而 HTTPS cookie 可以在 HTTP(不带安全标志)和 HTTPS 通道中发送。 严格隔离:HTTP cookie 和 HTTPS cookie 只能分别在 HTTPHTTPS 通道中发送。 Ext Secure...
    • https协议
      NULL 博文链接:https://willwen.iteye.com/blog/1988199