1. 程式人生 > >兔子的繁殖問題即菲波那切數列 java實現

兔子的繁殖問題即菲波那切數列 java實現

問題:兔子在出生兩個月後,就有繁殖能力,一對兔子每個月能生出一對小兔子來。初始有一對小兔子,假設所有兔子都不死,那麼一年以後可以繁殖多少對兔子?
思路:                                                    

每月的兔子總數:1、1、2、3、5、8、13、……。與菲波那切數列相似:從第三項開始,本項的數字等於前兩個數字的和,可以放入一個數組裡面,讓前兩項arr[0]和arr[1]的值等於1,然後第i項的數就等於 a[i-1] + a[i-2]......依次類推

java程式碼實現如下:

import java.util.Scanner;
class Text01{
	public static void main(String [] args){
		Scanner sc =new Scanner(System.in);
		System.out.print("請輸入截止月份:");
		int number = sc.nextInt();
		int[] arr=new int[number];
		System.out.print(number+"月的兔子數量的變化: ");
		int i=0;
		for(;i<number;i++){        //迴圈計算兔子的數量
			if(i == 0 ) {        //把arr[0]和arr[1]的值賦為1
				arr[0]=1;
			}else if( i ==1 ) {
				arr[1]=1;
			}else {
				arr[i]=arr[i-1]+arr[i-2];        //計算第i個月的兔子數量
			}
			System.out.print(arr[i]+"  ");
		}
		System.out.println();
		System.out.println(number+"月份的時候兔子的數量是:"+arr[i-1]);
	}
}

這個程式是通過鍵盤輸入要截止月份,然後列印截止月份之前的兔子數量的變化,並輸出截止月份的兔子的數量

執行結果:



相關推薦

兔子繁殖問題數列 java實現

問題:兔子在出生兩個月後,就有繁殖能力,一對兔子每個月能生出一對小兔子來。初始有一對小兔子,假設所有兔子都不死,那麼一年以後可以繁殖多少對兔子?思路:                                                    每月的兔子總數:1、1

js實現數列的兩種常用方法

res alert 定義 面向 div ret 如果 clas cti 菲波那切數列即:1 1 2 3 5 8......,後面的數字是前面兩個數字的和,並且第一個,第二個數字都是1,用js實現 的兩種方法,一種通過常用的遞歸調用,第二種不通過遞歸,而是通過強大的閉包實現。

python實現數列 用遞迴實現求第N個數列

斐波那契數列即著名的兔子數列:1、1、2、3、5、8、13、21、34、…… 數列特點:該數列從第三項開始,每個數的值為其前兩個數之和,用python實現起來很簡單: a=0 b=1 while b < 1000: print(b) a, b = b, a+b

JS遞迴實現階乘和數列

當我們需要使用遞迴來完成某些操作的時候,我們先要了解什麼是遞迴 什麼是遞迴? 遞迴,就是在執行的過程中呼叫自己。 一般來說,遞迴需要有邊界條件、遞迴前進段和遞迴返回段。 當邊界條件不滿足時,遞迴前進;當邊界條件滿足時,遞迴返回。 舉個例子: 1 function fun(){ 2

JavaScript遞迴 計算n的階乘 數列

// n的階乘 function mul(n) { // 出口 if(n == 1 || n == 0){ return 1; } //規律 return n * mul(n - 1); } // 遞迴的效率最慢 少用。 // 遞迴的好處 程

數列遞迴和迭代演算法

#include <iostream> using namespace std; int Fabonaqie1(int num){ //迭代演算法1 int a2 = 0; if (num == 1){ return 0; } else if(num == 2){

動態規劃-數列--DP_2

就是簡單的把這個程式碼貼出來,按道理來講這個大家都會 package dynamic.planning; /* * 菲波那切數列 1、1、2、3、5、8、13、、、 * 主要公式:f(n) =

python實現數列 用遞迴實現求第N個數列

斐波那契數列即著名的兔子數列:1、1、2、3、5、8、13、21、34、…… 數列特點:該數列從第三項開始,每個數的值為其前兩個數之和,用python實現起來很簡單: a=0 b=1 while b < 1000: print(b) a, b = b

數列數列第n項三種方法小結

菲波那切數列數列的應用場景還是比較多的,比如可以在考試的時候考你遞迴啊,早上碰到的一道題就是這樣,驕傲地寫下遞迴方程,結果TLE了,然後旁邊的大神給我說了一個叫滾動陣列的東西。。。題目是這樣的You

劍指offer-數列

一、問題描述 實現斐波那契數列,現在要求輸入一個整數n,請你輸出斐波那契數列的第n項。n<=39 二、思路 迴圈實現即可。 三、程式碼 class Solution { public:

c語言實現數列對大數求餘

如果百度搜索的話,解決這個問題的程式碼大部分使用C++或者java來寫的,用C寫的很少,因此今天小編獻上用C解決這個問題的程式碼。原題是這樣的 這是藍橋杯的一道練習題,如上題所述,輸入為給定的一個任意正數n,求其對應的菲波那切數列項對10007的餘數,看到題的同學可能二話

骨牌鋪方格(數列

cstring int turn bsp ble gif ace bits 分享圖片 Problem Description 在2×n的一個長方形方格中,用一個1× 2的骨牌鋪滿方格,輸入n ,輸出鋪放方案的總數.例如n=3時,為2×

數列 Java實現

① public class Demo{ public static void main(String[] args) { System.out.println(fibonacci(100)); } public

數列 java實現

 public class Fibonacci {  public static void main(String[] args) {   for(int i=0;i<10;i++){    System.out.println(getfibonacci(i));

兔子繁殖問題數列java實現

斐波那契數列以兔子繁殖為例子而引入,故又稱為“兔子數列”。 一般而言,兔子在出生兩個月後,就有繁殖能力,一對兔子每個月能生出一對小兔子來。初始有一對小兔子,假設所有兔子都不死,那麼一年以後可以繁殖多少對兔子? 思路:                             

古典問題:兔子出生後第3個月起每個月都生一對兔子,小兔子長到第三個月後每個月又生一對兔子,假如兔子都不死,問兩年內每個月的兔子總數為多少?(斐數列

分析 第一個月—————–1 第二個月—————–1 第三個月—————–2 第四個月—————–3 第五個月—————–5 第六個月—————–8 第七個月—————–13 … … 從中發現,

Java 兔子問題(斐數列)擴展篇

aik 第一個 truct func main target htm bre trace Java 兔子問題(斐波那契數列)擴展篇 斐波那契數列指的是這樣一個數列 0, 1, 1, 2,3, 5, 8, 13, 21, 34, 55, 89, 144, ...對於這個

遞歸--練習6--noi1755數列

ace ac代碼 std 題目 ++ pen names tdi problem 遞歸--練習6--noi1755菲波那契數列 一、心得 二、題目 1755:菲波那契數列 總時間限制: 1000ms 內存限制: 65536kB描述菲波那契數列是指這樣的數列: 數列的

遞推-練習1--noi1760 數列(2)

tex 時間 正整數 itl n) col turn page def 遞推-練習1--noi1760 菲波那契數列(2) 一、心得 二、題目 1760:菲波那契數列(2) 總時間限制: 1000ms 內存限制: 65536kB描述菲波那契數列是指這樣的數列: 數列

1760:數列(2)

problem 得到 spa clas 第一個 out 。。 i++ 輸出 總時間限制: 1000ms 內存限制: 65536kB描述菲波那契數列是指這樣的數列: 數列的第一個和第二個數都為1,接下來每個數都等於前面2個數之和。給出一個正整數a,要求菲波那契數列中第a個數對