當前位置:首頁 » 編程語言 » java斐波那契

java斐波那契

發布時間: 2022-06-13 03:59:42

java:求斐波那契數列第n項

public class Fibonacci {
public static void main(String args[]){
int n,fn;//n為第n項,fn為第n項的值
java.util.Scanner s = new Scanner(System.in);
n=s.nextInt();
fn=function(n);
System.out.println("斐波那契數列第"+n+"項為:"+fn);
}

public static int function(int n){
if(n==1 || n==2) return 1;
return function(n-1)+function(n-2);
}

}
希望能幫到你,其實和c語言是一樣一樣的。。
希望能解決您的問題。

㈡ java 斐波那契數列

importjava.util.Scanner;
/**
*斐波那契數列:第0項是0,第1項是第一個1。
這個數列從第三項開始,每一項都等於前兩項之和
*@authoryoung
*
*/
publicclassFei{
publicstaticvoidfunc(intn){
if(n<3){
System.out.println("0,1");
}elseif(n>3){
inta=0,b=1,c=0;
System.out.print(a+""+b+"");
for(inti=3;i<=n;i++){
c=a+b;
a=b;
b=c;
System.out.print(c+"");
}
}elseif(n<0){
System.out.println("輸入數字不符合要求");
}
}
publicstaticvoidmain(String[]args){
Feif=newFei();
Scannerinput=newScanner(System.in);
System.out.print("請輸入斐波那契數列的列數n,按ENTER:");
intnum=input.nextInt();
System.out.println("斐波那契數列為:");
func(num);
}
}

正確的代碼

㈢ java判斷一個數是否斐波那契

斐波納契數列,又稱黃金分割數列,指的是這樣一個數列:1、1、2、3、5、8、13、21、……在數學上,斐波納契數列以如下被以遞歸的方法定義:F0=0,F1=1,Fn=F(n-1)+F(n-2)(n>=2,n∈N*)。

以下是Java代碼實現(遞歸與遞推兩種方式):


importjava.util.Scanner;

publicclassFibonacci{

publicstaticvoidmain(String[]args){
Scannerscanner=newScanner(System.in);
System.out.println("Pleaseinputthisfibonaccin:");
intn=scanner.nextInt();//假設輸入為大於零的整數

System.out.println(fibonacci(6)+":"+fibonacciNormal(6));

intsum=0;
for(inti=1;i<=n;i++){
sum+=fibonacci(i);
}
System.out.println(sum);
}

//遞歸實現方式
publicstaticintfibonacci(intn){
if(n<=2){
return1;
}else{
returnfibonacci(n-1)+fibonacci(n-2);
}
}

//遞推實現方式
(intn){
if(n<=2){
return1;
}
intn1=1,n2=1,sn=0;
for(inti=0;i<n-2;i++){
sn=n1+n2;
n1=n2;
n2=sn;
}
returnsn;
}
}

㈣ Java實現斐波那契數列

public class Demo{
public static void main(String[] args) {
int fei[] = new int[25];
fei[0] = 0;
fei[1] = 1;
for(int i=2;i<fei.length;i++){
fei[i] = fei[i-1] + fei[i-2];
}
for(int i=0;i<fei.length;i++){
System.out.print(fei[i]+" ");
}
}
}

㈤ 用JAVA表示斐波那契數列 急急急!!!!

publicclassFibonacci{

//能夠被顯示的最大項
privatestaticfinallongMAX_TERM_VALUE=10000;

publicvoidrun(){
longfibonacci_1=0L;
longfibonacci=1L;
System.out.println(fibonacci_1);
while(fibonacci<MAX_TERM_VALUE){
System.out.println(fibonacci);
longtemp=fibonacci_1+fibonacci;
fibonacci_1=fibonacci;
fibonacci=temp;
}
}

publicstaticvoidmain(String[]args){
newFibonacci().run();
}

}

㈥ java語言解決斐波那契數列問題

public
class
zuoye{
public
static
void
main(String[]
args){
int
num1=1,num2=1;//設定前兩位數初始值
int
num=0;
//把變數mun賦值為0是什麼意思?在後面有什麼用?
答:
num賦值初始化為0,
不然為null.
System.out.println(num1+"\\t"+num2+"\\t"+(num1+num2));
//顯示輸出數列的前三位
這個上面的列印的結果和後面循環的結果應該是分開的,也就是前面列印
1
1
2
然後換行,然後再通過循環列印10個數字.
接下來我們看循環部分.
斐波那契數列公式是
F1=1
(n=1)
F2=1
(n=2)
Fn=F(n-1)+F(n-2)
(n>=3)
所以,
for(int
i=1;i<=10;i++){
//for循環
int
num3=num+num2;
//num+num2
??num加num2干什麼?
答:num是個中間變數,
用來傳值,
賦給num的值永遠是F(n-1)
num2=num;
//為什麼又把num賦值給num2?
答:
賦給num2的值永遠是F(n-2).
這里因為num的值在上一個循環里為F(n-1),到下一個循環應該是F(n-2).所以賦給num2.
num=num3;
//
num3再賦給num?
答:
因為賦給num的值永遠是F(n-1),
這里因為num3的值到下一個循環應該就是F(n-1).所以賦給num.
System.out.print("\\t"+num3);
if(i%5==0){
//i能被5整除.為什麼要設定一個這樣的判斷條件?
答:
這里是每五個數列印一個換行符.
System.out.println();
//輸出空的是什麼意思?
答:
這里是列印一個換行符
}
}
}
}

㈦ java斐波那契數排列

你好,使用遞歸方法,計算n的斐波納契數列,以下為實現代碼。
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
int n = 0;
try{
// 接收控制台傳遞參數,並將轉化為整數
n = Integer.parseInt(args[0]);
}catch(Exception ex)
{
ex.printStackTrace();
System.out.println("請輸入整數!");
}
// 創建對象
Test test = new Test();
// 調用遞歸方法,計算n的斐波那契數
int value = test.f(n);
// 輸出結果
System.out.println(value);
}

/**
* 自定義遞歸方法,返回f(n)=f(n-1) + f(n-2)
* @param n
* @return
*/
private int f(int n)
{
// 當n不等於1時
if(n >= 2)
{
// 遞歸調用
return f(n-1) + f(n-2);
}
// 當n等於1時
else if(n == 1)
{
return 1;
}
// 當n等於0時
else if(n == 0)
{
return 0;
}
// 其他情況返回0
return 0;
}
}

㈧ java實現斐波那契數列的幾種方法時間效率問

這道兔子題的實質就是斐波那契數列: 有一對兔子,從出生後第3個月起每個月都生一對兔子,小兔子長到第三個月後每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數為多少?
1 1 2 3 5 8 13 ……

方案一:遞歸演算法實現

public static long fib(int n){

if(n <= 1){

return 1;

}else{

return fib(n - 1) + fib(n - 2);

}

}

初看起來,使用遞歸演算法是最簡潔的。可是,如果將程序編碼病在n值為40左右時運行那麼這個程序讓人感到效率低的嚇人。n>4時,其時間效率為fib(N)>=(3/2)的n次方,這個程序運行的時間以指數的速度增長。這大概是最壞的情況。

方案二:數組方式

public static int fib2(int n) {

int[] array = new int[n];

array[0] = array[1] =1;

for (int i = 0; i < array.length; i++) {

if (i == 0 || i == 1) {

return array[i];

}else {

array[i] = array[i-1] +array[i-2];

}

} return array[i];

}

數組方式的好處是只是用了一個for循環,運行時間可以顯著降低。

㈨ 如何用java語言輸出斐波那契數列

  • Java編程:三種方法實現斐波那契數列


其一方法:

publicclassDemo2{
//定義三個變數方法
publicstaticvoidmain(String[]args){
inta=1,b=1,c=0;
System.out.println("斐波那契數列前20項為:");
System.out.print(a+" "+b+" ");
//因為前面還有兩個1、1所以i<=18
for(inti=1;i<=18;i++){
c=a+b;
a=b;
b=c;
System.out.print(c+" ");
if((i+2)%5==0)
System.out.println();
}
}

}
  • java編程:三種方法實現斐波那契數列


其二方法:

publicclassDemo3{
//定義數組方法
publicstaticvoidmain(String[]args){
intarr[]=newint[20];
arr[0]=arr[1]=1;
for(inti=2;i<arr.length;i++){
arr[i]=arr[i-1]+arr[i-2];
}
System.out.println("斐波那契數列的前20項如下所示:");
for(inti=0;i<arr.length;i++){
if(i%5==0)
System.out.println();
System.out.print(arr[i]+" ");
}
}

}
  • Java編程:三種方法實現斐波那契數列

其三方法:

publicclassDemo4{
//使用遞歸方法
privatestaticintgetFibo(inti){
if(i==1||i==2)
return1;
else
returngetFibo(i-1)+getFibo(i-2);
}

publicstaticvoidmain(String[]args){
System.out.println("斐波那契數列的前20項為:");
for(intj=1;j<=20;j++){
System.out.print(getFibo(j)+" ");
if(j%5==0)
System.out.println();
}
}

}

同一道題用各種不同的思路去思考解決,也是對知識綜合運用的鍛煉。

㈩ Java斐波那契數第35個數,流程圖加代碼

流程圖如下:

public int Fibonacci(int n) {

int[] res = {0, 1};

if(n < 2) {

return res[n];

}

int first = 0;

int second = 1;

int fibn = 0;

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

fibn = first + second;

first = second;

second = fibn;

}

return fibn;

}

public static void main(String[] args) {
System.out.println(Fibonacci(35));
}

熱點內容
真我手機如何解除手機密碼 發布:2024-05-04 18:24:44 瀏覽:708
資料庫嵌套 發布:2024-05-04 18:24:29 瀏覽:146
豌豆莢源碼 發布:2024-05-04 18:10:54 瀏覽:117
蘋果消息的聲音安卓怎麼弄 發布:2024-05-04 18:06:23 瀏覽:555
減配配置有哪些 發布:2024-05-04 18:04:58 瀏覽:963
查詢密碼單是什麼 發布:2024-05-04 17:54:03 瀏覽:41
安卓系統不支持網路怎麼辦 發布:2024-05-04 17:49:31 瀏覽:128
oraclesqlserver 發布:2024-05-04 17:49:16 瀏覽:47
關愛腳本 發布:2024-05-04 17:43:47 瀏覽:422
linuxshellif 發布:2024-05-04 17:09:47 瀏覽:17