Java中斐波那契數列相關面試題
斐波那契數列(Fibonacci sequence),又稱黃金分割數列、因數學家列昂納多·斐波那契(Leonardoda Fibonacci)以兔子繁殖為例子而引入,故又稱為“兔子數列”,指的是這樣一個數列:1、1、2、3、5、8、13、21、34、……在數學上,斐波納契數列以如下被以遞迴的方法定義:F(0)=1,F(1)=1, F(n)=F(n-1)+F(n-2)(n>=2,n∈N*)
題目描述1
大家都知道斐波那契數列,現在要求輸入一個整數n,請你輸出斐波那契數列的第n項。n<=38
非遞迴實現方式:
遞迴實現方式:public static int fibonacci(int n) { int result = 0; int a1 = 0; int a2 = 1; if (n < 0 || n > 38) { System.out.println("please correct number"); return -1; } if (n == 0) { return 0; } else if (n == 1) { return 1; } else { for (int i = 2; i <= n; i++) { result = a1 + a2; a1 = a2; a2 = result; } } return result; }
static int result = 0;
public static int fibonacciByRecursive(int n) {
if (n == 0) {
return 0;
} else if (n == 1) {
return 1;
} else {
result = fibonacciByRecursive(n - 1) + fibonacciByRecursive(n - 2);
}
return result;
}
題目描述2一隻青蛙一次可以跳上1級臺階,也可以跳上2級。求該青蛙跳上一個n級的臺階總共有多少種跳法。
先簡單推理分析下
n=1,solution =1
n=2,solution=2
n=3,solution=3
n=4,solution=5
f(n)=f(n-1)+f(n-2),和斐波那契數列 類似只是f(1)=1,f(2)=2,只需要把上面的稍微改動下即可
遞迴解法類似,就不在貼程式碼了。public int JumpFloor(int target) { //f(n)=f(n-1)+f(n-2) int result = 0,a1 =1,a2=2; if(target ==1){ return 1; }else if(target ==2){ return 2; }else{ for(int i=3;i<=target;i++){ result=a1+a2; a1 =a2; a2 =result; } return result; } }
相關推薦
Java中斐波那契數列相關面試題
斐波那契數列(Fibonacci sequence),又稱黃金分割數列、因數學家列昂納多·斐波那契(Leonardoda Fibonacci)以兔子繁殖為例子而引入,故又稱為“兔子數列”,指的是這樣一
Java實現斐波那契數列(遞迴、遍歷、矩陣)
什麼是斐波那契數列 其實很簡單,可以理解為: F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=3,n∈N*) 比如這樣一個數列:1、1、2、3、5、8、13、21、34、…… 有興趣可以看百度百科 下面我們就來實現,給定一個n,求f(n)的值
java實現斐波那契數列的三種方法
Java實現斐波那契數列的三種方法 什麼是斐波那契數列 這裡借用一下度孃的一段話:斐波那契數列(Fibonacci sequence),又稱黃金分割數列、因數學家列昂納多·斐波那契(Leonardoda Fibonacci)以兔子繁殖為例子而引入,故又稱為“兔子數列”,指的是
Java之斐波那契數列的三種寫法
說明:1,1,2,3,5,8,13,21,34,55,89......這樣是數列稱為斐波那契數列 1、利用遞迴思想處理 public static long method(int num){ if(num <=
java 優化斐波那契數列
一、動態規劃、分治、遞迴的概念 動態規劃:如果大問題分解為很多小問題後,小問題有互相重疊部分,則用遞迴的思路來分析問題,再使用儲存中間結果+迴圈的思路來寫程式碼!動態規劃的三個特徵:適用於最優解問題、有大量的重複子問題、子問題之間有依賴(不獨立) 與遞
Java實現斐波那契數列
public class Java02{ public static void main(String[] args){ int num = Integer.parseInt(args[0]); ///將string型別轉換為int型別
java 求斐波那契數列 不死神兔
有一對兔子,從出生起後第3個月起每個月都生一對兔子,小兔子長到第三個月後每個月又生一對兔子, 假如兔子都不死,問第二十個月的兔子對數為多少? 規律: 1,1,2,3,5,8,13... 規則:A.從第三個月開始,第一項是前兩項之和。 B.說明前兩項是已知的。 其實就是斐波那契數列,
Python中斐波那契數列的賦值邏輯
斐波那契數列 斐波那契數列又稱費氏數列,是數學家Leonardoda Fibonacci發現的。指的是0、1、1、2、3、5、8、13、21、34、······這樣的數列。即從0和1開始,第n項等於第n-1項與n-2項之和。需要注意的是0是第0項,而不是第一項。 用Python中簡單的賦值語句實現斐波
Python中斐波那契數列的賦值邏輯!
斐波那契數列 斐波那契數列又稱費氏數列,是數學家Leonardoda Fibonacci發現的。指的是0、1、1、2、3、5、8、13、21、34、······這樣的數列。即從0和1開始,第n項等於第n-1項與n-2項之和。需要注意的是0是第0項,而不是第一項。 用Python中簡單的賦值語
java實現斐波那契數列,現在要求輸入一個整數n,請你輸出斐波那契數列的第n項。 n
public class Solution_feibonaqi { public int Fibonacci(int n) { int result[] = { 0, 1 }; if (n < 2) { return result[n];
使用Java列印斐波那契數列的三種方法
斐波那契數列(Fibonacci sequence)的定義:斐波那契數列指的是這樣一個數列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,
Java實現斐波那契數列並輸出前10000個數值
斐波納契數列,又稱黃金分割數列,指的是這樣一個數列:0、1、2、3、5、8、13、21、……在數學上,斐波納契數列以如下被以遞迴的方法定義:F0=0,F1=1,Fn=F(n-1)+F(n-2)(n&
用java寫斐波那契數列
package com.wood.util; import java.util.ArrayList; import java.util.Iterator; import java.util.List; public class test1 { public sta
【Java】斐波那契數列前N項(堆疊演算法)
堆疊是一種很靈活的"後進先出"資料結構,使用堆疊可以節省記憶體的開銷。比如,遞迴是一種很消耗記憶體的演算法,可以藉助堆疊消除大部分遞迴,達到和遞迴演算法同樣的目的。 下面用例子實現求斐波那契數列前N項
如何用Java編寫斐波那契數列
無窮數列1,1,2,3,5,8,13,21,34,55,……,稱為Fibonacci數列。它可以遞迴地定義為: F(n)=1 n=0 F(n)=1
《劍指Offer》Java實現-斐波那契數列
題目描述 大家都知道斐波那契數列,現在要求輸入一個整數n,請你輸出斐波那契數列的第n項。 n<=39 思路 很基礎的題目,有遞迴和非遞迴兩種實現思路。 程式碼 遞迴演算法
python3中斐波那契數列演算法的實現方法
斐波那契數列的定義斐波那契數列(Fibonacci sequence),又稱黃金分割數列、因數學家列昂納多·斐波那契(Leonardoda Fibonacci)以兔子繁殖為例子而引入,故又稱為“兔子數列
典型的動態規劃題目總結(斐波那契數列相關)
1.常規跳臺階 一隻青蛙一次可以跳上1級臺階,也可以跳上2級。求該青蛙跳上一個n級的臺階總共有多少種跳法(先後次序不同算不同的結果)。 大體思路: 第 i 個樓梯可以從第 i-1 和 i-2 個樓梯再走一步到達,即走到第 i 個樓梯的方法數為走到第 i-1 和第 i-2 個樓梯的方法數之和。所以可以推匯出遞推
java中的不死兔問題(斐波那契數列)(遞歸思想)
sys nbsp public 錯誤 兔子 static class 月份 urn 有一對兔子,從出生後第3個月起每個月都生一對兔子,小兔子長到第三個月後每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數為多少? public class Item { pu
Java中的不死神兔(斐波那契數列)
三種方法實現例項: package test17_digui; import java.util.Scanner; /* * 題目:有一對兔子,從出生後第3個月起每個月都生1對兔子,小兔子第三個月後也可以生一對兔子, * 假如兔子不死,在指定月份時刻一共可以有多少對兔子 *