導航:首頁 > 編程語言 > fibonacci數列java

fibonacci數列java

發布時間:2022-12-29 09:19:41

『壹』 java語言解決斐波那契數列問題

遞歸函數的定義:
遞歸函數即自調用函數,在函數體內直接或間接的調用自己,即函數的嵌套是函數本身。
遞歸方式:遞歸調用有直接遞歸和間接遞歸兩種方式。
直接遞歸:在函數中出現調用函數本身。
下面代碼求斐波那契數列第n項,斐波那契數列第一和第二項是1,後面每一項是前兩項之和,即1、1、2、3、5、8、13
...。
public
class
test
{
public
static
void
main(string
args[])
{
int
x1
=
1;
int
sum
=
0;
int
n
=
7;
for
(int
i
=
1;
i
<=
n;
i++)
{
x1
=
func(i);
sum
=
sum
+
x1;
}
system.out.println("sum="
+
sum);
}
public
static
int
func(int
x)
{
if
(x
>
2)
return
(func(x
-
1)
+
func(x
-
2));
else
return
1;
}
}
間接遞歸:指函數中調用了其他函數,而該其他函數有調用了本函數。
用間接遞歸來計算上述斐波那契數列。
程序代碼:
public
class
test
{
public
static
void
main(string
args[])
{
int
x1
=
1;
int
sum
=
0;
int
n
=
7;
for
(int
i
=
1;
i
<=
n;
i++)
{
x1
=
func1(i);
sum
=
sum
+
x1;
}
system.out.println("sum="
+
sum);
}
public
static
int
func1(int
a){
int
b;
b=func2(a);
return
b;
}
public
static
int
func2(int
b)
{
if
(b>
2)
return
(func1(b
-
1)
+
func1(b
-
2));
else
return
1;
}
}

『貳』 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語言用數組輸出Fibonacci數列:1 1 2 3 5 8 13....前20

方法如下供參考:

publicclassTest{

publicstaticvoidmain(String[]args){

intintArrary[]=newint[20];
intArrary[0]=intArrary[1]=1;

for(inti=2;i<intArrary.length;i++){
intArrary[i]=intArrary[i-1]+intArrary[i-2];
}

System.out.println("Fibonacci數列:11235813....前20如下所示:");
for(inti=0;i<intArrary.length;i++){
if(i%5==0)

System.out.println();
System.out.print(intArrary[i]+" ");
}
}
}

『肆』 用JAVA數組來求斐波那契數列前20項: 1 1 2 3 5 8 ….

publicclassDemo{
publicstaticvoidmain(String[]args){

intn=20;
intsum=0;
for(inti=1;i<=n;i++){
System.out.print(fibo(i)+" ");
sum+=fibo(i);
}
System.out.println(" 菲波那契數列的前20項和為:"+sum);
}

privatestaticintfibo(intn){
if(n==1)
return1;
if(n==2)
return1;
returnfibo(n-1)+fibo(n-2);
}
}

數組法:
publicclassDemo{
publicstaticvoidmain(String[]args){
int[]array=newint[20];
array[0]=1;
array[1]=1;
intsum=0;
for(inti=2;i<array.length;i++){
array[i]=array[i-1]+array[i-2];
}
//遍歷數組並累計
for(inti=0;i<array.length;i++){
sum+=array[i];
}
//輸出和
System.out.println(" 菲波那契數列的前20項和為:"+sum);
}
}

『伍』 如何用java語言輸出斐波那契數列

/*packagewhatever;//don'tplacepackagename!*/
importjava.util.*;
importjava.lang.*;
importjava.io.*;
classFibonacci{
publicstaticvoidmain(String[]args){
inta=1,b=1,c=0;
System.out.print(a+" "+b+" ");
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();
}
}
}

『陸』 編寫程序,輸出fibonacci數列(斐波納契數列)的前五十項 用java語音

算是很簡單的一個題目。

publicclassTest_01{

//一共顯示SUM項
privatestaticfinalintSUM=50;

//將fibonacci數列放入數組中(由於第50項的數字已經超過了int的上限,故用long)
privatestaticlong[]fibonacci=newlong[SUM];

{
//初始化fibonacci數列的前兩項,即f(1)=1、f(2)=1
fibonacci[0]=1L;
fibonacci[1]=1L;
for(inti=2;i<SUM;i++){
//根據fibonacci數列定義f(n)=f(n-1)+f(n-2)求出後面的項,一直求到第SUM項
fibonacci[i]=fibonacci[i-1]+fibonacci[i-2];
}
}

publicstaticvoidmain(String[]args){
//必須先初始化,不然fibonacci數組中的值全為0
newTest_01();
//50個數字不好在同一行輸出,故不採用Arrays.toString()方法
for(inti=0;i<Test_01.SUM;i++){
System.out.println(Test_01.fibonacci[i]);
}
}

}

『柒』 用java編寫程序,輸出fibonacci數列的前20項

運用遞歸來寫fibonacci的演算法,其中當輸入0時,返回0,當輸入1時,返回1

publicstaticvoidmain(Stringargs[]){

intindex=0;
while(index<20)
{
System.out.println(fibonacci(index++));
}

}

privatestaticintfibonacci(inta)
{
if(a==0)return0;
if(a==1)return1;
returnfibonacci(a-1)+fibonacci(a-2);
}

最後的效果如下

『捌』 java編程實現輸出fibonacci數列(要求利用數組實現)的前30項

這個問題沒有難度吧。寫了一下你參考下,循環 遞歸都能輕松實現的。

	publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
int[]fibonacci=null;
fibonacci=fibonacci(30);
System.out.println(Arrays.toString(fibonacci));
fibonacci=newint[30];
fibonacci(fibonacci,0);
System.out.println(Arrays.toString(fibonacci));

}
//循環
publicstaticint[]fibonacci(intlength){
int[]fibonacci=newint[length];
fibonacci[0]=0;
fibonacci[1]=1;
for(inti=2;i<length;i++)
fibonacci[i]=fibonacci[i-1]+fibonacci[i-2];
returnfibonacci;
}

//遞歸
publicstaticvoidfibonacci(int[]fibonacci,intindex){
if(index>-1&&index<fibonacci.length){
if(index<2&&index>-1)
fibonacci[index]=index;
else
fibonacci[index]=fibonacci[index-1]+fibonacci[index-2];
fibonacci(fibonacci,index+1);
}
}
閱讀全文

與fibonacci數列java相關的資料

熱點內容
dvd光碟存儲漢子演算法 瀏覽:757
蘋果郵件無法連接伺服器地址 瀏覽:962
phpffmpeg轉碼 瀏覽:671
長沙好玩的解壓項目 瀏覽:144
專屬學情分析報告是什麼app 瀏覽:564
php工程部署 瀏覽:833
android全屏透明 瀏覽:736
阿里雲伺服器已開通怎麼辦 瀏覽:803
光遇為什麼登錄時伺服器已滿 瀏覽:302
PDF分析 瀏覽:484
h3c光纖全工半全工設置命令 瀏覽:143
公司法pdf下載 瀏覽:381
linuxmarkdown 瀏覽:350
華為手機怎麼多選文件夾 瀏覽:683
如何取消命令方塊指令 瀏覽:349
風翼app為什麼進不去了 瀏覽:778
im4java壓縮圖片 瀏覽:362
數據查詢網站源碼 瀏覽:150
伊克塞爾文檔怎麼進行加密 瀏覽:892
app轉賬是什麼 瀏覽:163