欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java編程經(jīng)典案例之基于斐波那契數(shù)列解決兔子問題實例

 更新時間:2017年10月23日 10:36:50   作者:CharlinGod  
這篇文章主要介紹了java編程經(jīng)典案例之基于斐波那契數(shù)列解決兔子問題,結(jié)合完整實例形式分析了斐波那契數(shù)列的原理及java解決兔子問題的相關(guān)操作技巧,需要的朋友可以參考下

本文實例講述了java基于斐波那契數(shù)列解決兔子問題。分享給大家供大家參考,具體如下:

題目:古典問題:有一對兔子,從出生后第3個月起每個月都生一對兔子,小兔子長到第三個月后每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數(shù)為多少?

package com.java.recursion;
/**
* @描述 三種方法實現(xiàn)斐波那契數(shù)列
* @項目名稱 Java_DataStruct
* @包名 com.java.recursion
* @類名 Fibonacci
* @author chenlin
*/
public class Fibonacci {
/**
* 題目:古典問題:有一對兔子,從出生后第3個月起每個月都生一對兔子,小兔子長到第三個月后每個月又生一對兔子,假如兔子都不死,
* 問每個月的兔子總數(shù)為多少?
* month 1 2 3 4 5 6
* borth 0 0 1 1 2 3
* total 1 1 2 3 5 8
*/
  /**
   * 疊加法
   *
   * @param month
   * @return
   */
  public static int getTotalByAdd(int month) {
    int last = 1;//上個月的兔子的對數(shù)
    int current = 1;//當(dāng)月的兔子的對數(shù)
    int total = 1;
    for (int i = 3; i <= month; i++) {
      //總數(shù)= 上次+當(dāng)前
      total = last + current;
      last= current ;
      current = total;
    }
    return total;
  }
  /**
   * 使用數(shù)組
   *
   * @param month
   * @return
   */
  public static int getTotalByArray(int month) {
    int arr[] = new int[month];
    arr[1] = arr[2] = 1;
    for (int i = 2; i < month; i++) {
      arr[i] = arr[i - 1] + arr[i - 2];
    }
    return arr[month - 1] + arr[month - 2];
  }
  public static int getTotalByRecusion(int month) {
    if (month == 1 || month == 2) {
      return 1;
    } else {
      return getTotalByRecusion(month - 1) + getTotalByRecusion(month - 2);
    }
  }
  public static void main(String[] args) {
    System.out.println("腳本之家測試結(jié)果:");
    System.out.println(getTotalByAdd(3));
    System.out.println(getTotalByAdd(4));
    System.out.println(getTotalByAdd(5));
    System.out.println(getTotalByAdd(6));
  }
}

運行結(jié)果:

 

更多關(guān)于java算法相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總

希望本文所述對大家java程序設(shè)計有所幫助。

相關(guān)文章

  • java打印國際象棋棋盤的方法

    java打印國際象棋棋盤的方法

    這篇文章主要為大家詳細(xì)介紹了java打印出國際象棋棋盤的相關(guān)代碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-05-05
  • SpringBoot+Mybatis plus實現(xiàn)多數(shù)據(jù)源整合的實踐

    SpringBoot+Mybatis plus實現(xiàn)多數(shù)據(jù)源整合的實踐

    本文主要介紹了SpringBoot+Mybatis plus實現(xiàn)多數(shù)據(jù)源整合的實踐,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • Spring中的@Scheduled源碼解析

    Spring中的@Scheduled源碼解析

    這篇文章主要介紹了Spring中的@Scheduled源碼解析,定時任務(wù)調(diào)度的基礎(chǔ)是ScheduledAnnotationBeanPostProcessor類,這是一個實現(xiàn)了BeanPostProcessor接口的后置處理器,需要的朋友可以參考下
    2023-09-09
  • @RequiredArgsConstructor如何實現(xiàn)構(gòu)造器注入

    @RequiredArgsConstructor如何實現(xiàn)構(gòu)造器注入

    這篇文章主要介紹了@RequiredArgsConstructor如何實現(xiàn)構(gòu)造器注入問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-09-09
  • spring boot教程之產(chǎn)生的背景及其優(yōu)勢

    spring boot教程之產(chǎn)生的背景及其優(yōu)勢

    這篇文章主要介紹了spring boot教程之產(chǎn)生的背景及其優(yōu)勢的相關(guān)資料,需要的朋友可以參考下
    2022-08-08
  • Java使用BigDecimal公式精確計算及精度丟失問題

    Java使用BigDecimal公式精確計算及精度丟失問題

    在工作中經(jīng)常會遇到數(shù)值精度問題,比如說使用float或者double的時候,可能會有精度丟失問題,下面這篇文章主要給大家介紹了關(guān)于Java使用BigDecimal公式精確計算及精度丟失問題的相關(guān)資料,需要的朋友可以參考下
    2023-01-01
  • Java的JDBC和橋接模式詳解

    Java的JDBC和橋接模式詳解

    下面小編就為大家?guī)硪黄狫ava的JDBC和橋接模式(詳解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2021-09-09
  • 使用SpringCloudApiGateway之支持Cors跨域請求

    使用SpringCloudApiGateway之支持Cors跨域請求

    這篇文章主要介紹了使用SpringCloudApiGateway之支持Cors跨域請求的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • 解決idea不支持SpringBoot yml文件的圖文教程

    解決idea不支持SpringBoot yml文件的圖文教程

    這篇文章主要介紹了解決idea不支持SpringBoot yml文件,需要的朋友可以參考下
    2018-06-06
  • Java調(diào)用python代碼的五種方式總結(jié)

    Java調(diào)用python代碼的五種方式總結(jié)

    這篇文章主要給大家介紹了關(guān)于Java調(diào)用python代碼的五種方式,在Java中調(diào)用Python函數(shù)的方法有很多種,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-09-09

最新評論