000 發問時間: 電腦與網際網路程式設計 · 6 年前

關於JAVA程式費式數列

JAVA程式的費式數列 請問超出範圍該如何解決呢

以下是我打的程式

import java.util.Scanner;

public class dsdfe {

public static void main(String[] args) {

// TODO Auto-generated method stub

int N,i,a;

System.out.println("輸入整數");

Scanner sc =new Scanner(System.in);

N=sc.nextInt();

long[] F=new long [1000];

F[0]=0;

F[1]=1;

for(i=2;i<=N;i++)

{

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

}

System.out.println("費式數列總合為"+F[N]);

}

}

請問能如何修改呢 謝謝~

已更新項目:

to 信哥的愛

算出來好像不對欸

to 許俏妞

我的意思是算出來的值會溢位的問題唷

4 個解答

評分
  • 6 年前
    最佳解答

    哈囉~我的朋友

    想擺脫窮忙族嗎?

    請小心!!最新網路商機很可能超越你的正常薪水

    =======================================================

    「趨勢就像一匹馬, 如果在馬後面追,你永遠都追不上」

    你只有騎在馬上面,才能和馬一樣的快, 這就叫馬上成功!

    電子商務的時代來臨,未來的主流商業模式將是"電子網購"與"直銷服務",所以直銷體系的事業基本上是不會被淘汰的,未來 5 年各行各業將全面洗牌,你會在哪裡?

    =======================================================

    Yahoo第三大團購網(小P團購網),尋找共同創業夥伴,專兼職均可

    公司四大主軸:

    1. 揪團購物、績分回饋。

    2. 組織營銷、倍增財富。

    3. 優質產品、商家開發。

    4. 利潤共享、股票分紅。

    還有免費的營銷課程、個人後台網站、制服與名片、講師訓練會......

    如果你對這個賺錢機會有興趣

    ↓↓↓↓↓↓ 請直接與我聯絡 ↓↓↓↓↓↓

    LINE id:flower_245

    http://wu83028dji.weebly.com/

    http://kappei.pixnet.net/blog

    ★歡迎報名參加說明會,機會難得千萬別錯過了喔★

  • 6 年前

    我不太懂你說的超出範圍是什麼意思

    你的程式不是陣列[1000]嗎 只能輸入0~999

    應該沒超過吧

    參考資料: ME
  • 6 年前

    18個月前 我只是一個飲料店的員工

    每天的工作就是不停的量糖.舀冰.裝茶

    後來漸漸意識到~

    這份工作我能夠多久?

    我二十年後還有力氣做這些事嗎?

    然後心中就漸漸浮現了一個想法

    "有什麼方法可以讓我過得更好嗎?!"

    於是開始在網路上尋找賺錢的方法

    皇天不負有心人~~~~

    讓我找到了一個超棒的賺錢方法

    ▼▼ 歡迎加我好友詢問 ▼▼

    https://www.facebook.com/beworthyof

    經過了一年半的努力後

    現在每月都可賺到五位數的收入

    甚至比原先的正職收入還要多

    我很慶幸當初有尋找且嘗試了這個機會

    才能讓我在飲料店倒閉了之後..

    還一直不斷不斷的有收入進來^^

    ▼▼歡迎大家加入我們的行列喔▼▼

    http://topejob.weebly.com/

  • 6 年前

    import java.util.Scanner;

    public class a0524 {

    @SuppressWarnings("resource")

    public static void main(String[] argv) {

    int n = new Scanner(System.in).nextInt();

    System.out.println(fab(n));

    }

    public static int fab(int n) {

    int fn_1 = 1, fn_2 = 0;

    int i, tmp;

    if (n <= 1)

    return n;

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

    tmp = fn_1;

    fn_1 += fn_2;

    fn_2 = tmp;

    }

    return fn_1;

    }

    }

    2015-05-28 23:29:06 補充:

    try {

    int n = new Scanner(System.in).nextInt();

    System.out.println(fab(n));

    } catch (InputMismatchException e) {

    System.out.println("輸入錯誤");

    }

    為了避免發生錯誤訊息,可以拋出例外。

    2015-05-30 09:21:04 補充:

    輸入多少會不對?

    2015-05-30 09:48:31 補充:

    因為你的程式在算費氏數列的方式就有錯,所以你不能拿你的程式所得到的答案結果跟我比對,例如:你的程式與我的程式Input:10 Output:55,一模一樣,但是輸入200可就不會一樣囉!

    參考資料: 信哥的愛, 信哥的愛, 信哥的愛, 信哥的愛
還有問題?馬上發問,尋求解答。