溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何用java解決兔子問題

發(fā)布時(shí)間:2021-12-08 11:58:37 來源:億速云 閱讀:155 作者:柒染 欄目:編程語言

如何用java解決兔子問題,針對這個(gè)問題,這篇文章詳細(xì)介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡單易行的方法。

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

解答:

分析:從第一對兔子開始,第1個(gè)月1對兔子,由于“長到第三個(gè)月后每個(gè)月又生一對兔子”,所以第2個(gè)月也是1對兔子,第3個(gè)月時(shí)可以生一對兔子,所以總數(shù)為2對,這時(shí),其中有一對是以后每個(gè)月都可以生一對兔子的老兔子,另一對是一對新兔子,它只有在第三個(gè)月的時(shí)候才可以每個(gè)月生一對兔子;這樣的話,第4個(gè)月的兔子總數(shù)為3對,…以此類推,從第1個(gè)月到第12個(gè)月的兔子對總數(shù)分別為:1,1,2,3,5,8,13,21,34,55,89,144。。。。。

這是一個(gè)典型的斐波那契數(shù)列。

由于每對新兔子隔一個(gè)月才可以生新一對兔子, 每月的兔子對總數(shù)為前兩個(gè)月的兔子對數(shù)之和。

(方法一)利用java編程基本實(shí)現(xiàn),程序設(shè)計(jì)如下:

如何用java解決兔子問題
代碼實(shí)現(xiàn)如下:

public class RabbitDemo {

public static void main(String[] args) {

int amount; //每個(gè)月的兔子總數(shù)

int nAmount = 1; //第一個(gè)月的兔子數(shù)量

int oAmount = 1; //第二個(gè)月的兔子數(shù)量

for(int i=1;i<=2;i++){

amount=1;

System.out.println(“第” + i + “個(gè)月的兔子總是為:” + amount);

}

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

amount = oAmount + nAmount;

oAmount = nAmount;

nAmount = amount;

System.out.println(“第” + i + “個(gè)月的兔子總是為:” + amount);

}

}

}

(方法二)利用遞歸的方法來解決斐波那契數(shù)列:
如何用java解決兔子問題

代碼實(shí)現(xiàn)如下:

import java.util.Scanner;

public class RabbitDemo {

public static void main(String[] args) {

System.out.println(“輸入月份”);

Scanner s = new Scanner( System.in );

int month = s.nextInt();

System.out.println(“第” + month + “個(gè)月的兔子總是為”+getNum(month));

}

public static int getNum(int month){

if(month == 1 || month == 2){

return 1;

}else{

return getNum(month-1)+getNum(month-2);

}

}

}

關(guān)于如何用java解決兔子問題問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI