本文目錄一覽:
如何用Java程序編程,最好講解一下。題目:古典問題:有一對兔子,從出生後第3個月起每個月都生一對
這道題目考察的是運用遞歸(數列)的思路去解決問題。
假設到第24個月,示例代碼如下:
public class woo {
public static void main(String args[]) {
System.out.println(fib(24));
}
private static int fib(int n) {
if (n == 1 || n == 2) {
return 1;
} else {
return fib(n – 1) + fib(n – 2);
}
}
}
擴展資料:
斐波那契數列(Fibonacci sequence),又稱黃金分割數列、因數學家列昂納多·斐波那契(Leonardoda Fibonacci)以兔子繁殖為例子而引入,故又稱為“兔子數列”,指的是這樣一個數列:1、1、2、3、5、8、13、21、34、……。
在數學上,斐波納契數列以如下被以遞推的方法定義:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)在現代物理、准晶體結構、化學等領域,斐波納契數列都有直接的應用,為此,美國數學會從1963年起出版了以《斐波納契數列季刊》為名的一份數學雜誌,用於專門刊載這方面的研究成果。
參考資料:
百度百科:斐波那契數列
百度百科:遞歸函數
java用遞歸編程(兔子問題)
這個是
斐波那契數列
的問題,根據要求編寫的
程序
如下:
public
class
Fibonacci
{
static
int
mb_Fibonacci(int
n){
if(n==1)
return
1;
if(n==2)
return
1;
return
mb_Fibonacci(n-1)+mb_Fibonacci(n-2);
}
public
static
void
main(String[]
args)
{
System.out.println(mb_Fibonacci(13));
}
}
運行結果:
233
Java代碼編程 經典的兔子問題?
這是斐波那契數列的問題
可以用遞歸,也可以用循環
遞歸:
public class Demo3 {
// 使用遞歸方法
private static int getFibo(int i) {
if (i == 1 || i == 2)
return 1;
else
return getFibo(i – 1) + getFibo(i – 2);
}
public static void main(String[] args) {
System.out.println(“斐波那契數列的前20項為:”);
for (int j = 1; j = 20; j++) {
System.out.print(getFibo(j) + “\t”);
if (j % 5 == 0)
System.out.println();
}
}
}
循環:
public class Demo2 {
// 定義數組方法
public static void main(String[] args) {
int arr[] = new int[20];
arr[0] = arr[1] = 1;
for (int i = 2; i arr.length; i++) {
arr[i] = arr[i – 1] + arr[i – 2];
}
System.out.println(“斐波那契數列的前20項如下所示:”);
for (int i = 0; i arr.length; i++) {
if (i % 5 == 0)
System.out.println();
System.out.print(arr[i] + “\t”);
}
}
}
原創文章,作者:YULT,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/148270.html