public
站在用戶的角度思考問題,與客戶深入溝通,找到靖安網(wǎng)站設(shè)計與靖安網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、域名申請、網(wǎng)站空間、企業(yè)郵箱。業(yè)務(wù)覆蓋靖安地區(qū)。
class
zuoye{
public
static
void
main(String[]
args){
int
num1=1,num2=1;//設(shè)定前兩位數(shù)初始值
int
num=0;
//把變量mun賦值為0是什么意思?在后面有什么用?
答:
num賦值初始化為0,
不然為null.
System.out.println(num1+"\\t"+num2+"\\t"+(num1+num2));
//顯示輸出數(shù)列的前三位
這個上面的打印的結(jié)果和后面循環(huán)的結(jié)果應(yīng)該是分開的,也就是前面打印
1
1
2
然后換行,然后再通過循環(huán)打印10個數(shù)字.
接下來我們看循環(huán)部分.
斐波那契數(shù)列公式是
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循環(huán)
int
num3=num+num2;
//num+num2
??num加num2干什么?
答:num是個中間變量,
用來傳值,
賦給num的值永遠是F(n-1)
num2=num;
//為什么又把num賦值給num2?
答:
賦給num2的值永遠是F(n-2).
這里因為num的值在上一個循環(huán)里為F(n-1),到下一個循環(huán)應(yīng)該是F(n-2).所以賦給num2.
num=num3;
//
num3再賦給num?
答:
因為賦給num的值永遠是F(n-1),
這里因為num3的值到下一個循環(huán)應(yīng)該就是F(n-1).所以賦給num.
System.out.print("\\t"+num3);
if(i%5==0){
//i能被5整除.為什么要設(shè)定一個這樣的判斷條件?
答:
這里是每五個數(shù)打印一個換行符.
System.out.println();
//輸出空的是什么意思?
答:
這里是打印一個換行符
}
}
}
}
Java編程:三種方法實現(xiàn)斐波那契數(shù)列
其一方法:
public?class?Demo2?{??
//?定義三個變量方法??
public?static?void?main(String[]?args)?{??
int?a?=?1,?b?=?1,?c?=?0;??
System.out.println("斐波那契數(shù)列前20項為:");??
System.out.print(a?+?"\t"?+?b?+?"\t");??
//因為前面還有兩個1、1?所以i=18??
for?(int?i?=?1;?i?=?18;?i++)?{??
c?=?a?+?b;??
a?=?b;??
b?=?c;??
System.out.print(c?+?"\t");??
if?((i?+?2)?%?5?==?0)??
System.out.println();??
}??
}??
}
java編程:三種方法實現(xiàn)斐波那契數(shù)列
其二方法:
public?class?Demo3?{??
//?定義數(shù)組方法??
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("斐波那契數(shù)列的前20項如下所示:");??
for?(int?i?=?0;?i??arr.length;?i++)?{??
if?(i?%?5?==?0)??
System.out.println();??
System.out.print(arr[i]?+?"\t");??
}??
}??
}
Java編程:三種方法實現(xiàn)斐波那契數(shù)列
其三方法:
public?class?Demo4?{??
//?使用遞歸方法??
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("斐波那契數(shù)列的前20項為:");??
for?(int?j?=?1;?j?=?20;?j++)?{??
System.out.print(getFibo(j)?+?"\t");??
if?(j?%?5?==?0)??
System.out.println();??
}??
}??
}
同一道題用各種不同的思路去思考解決,也是對知識綜合運用的鍛煉。
思路:
斐波那契數(shù)列
第0項是0,第1項是第一個1。
這個數(shù)列從第三項開始,每一項都等于前兩項之和。
java代碼如下:
import?java.util.Scanner;
/**
*?斐波那契數(shù)列
第0項是0,第1項是第一個1。
這個數(shù)列從第三項開始,每一項都等于前兩項之和
*?@author?young
*
*/
public?class?Fei?{
public?static?void?func(int?n)?{
if?(n??3)?{
System.out.println("0,1");
}?else?if?(n??3)?{
int?a=0,?b=1,?c=0;
??System.out.print(a?+?"????"?+?b?+?"????");
??for?(int?i?=?3;?i?=?n;?i++)?{
???c?=?a?+?b;
???a?=?b;
???b?=?c;
???System.out.print(c?+?"????");
??}
}?else?if?(n??0)?{
System.out.println("輸入數(shù)字不符合要求");
}
}
public?static?void?main(String[]?args)?{
Fei?f?=?new?Fei();
Scanner?input?=?new?Scanner(System.in);
System.out.print("請輸入斐波那契數(shù)列的列數(shù)n,按ENTER:");
int?num?=?input.nextInt();
System.out.println("斐波那契數(shù)列為:"?);?
func(num);
}
}
運行結(jié)果如下: