小弟是JAVA新手 費氏數列 為何我輸入10他卻只到5的數列 有大大可以幫我解答嗎?

2015-10-11 8:52 am
import java.util.*;
public class Test2 {
public static void main(String args[]) {
Scanner scanner = new Scanner(System.in);
System.out.print("N:");
int n = scanner.nextInt();
int[] f = new int[n];
f[0] = 0;
f[1] = 1;
f[2] = 1;
for (int i=2; i<n;i++){
if(i>3){
f[i] = f[i-1] + f[i-2];
System.out.print(f[i-1]+",");
}
}
}
}

回答 (2)

2015-10-21 4:10 am
f[0] = 1;
f[1] = 1;
for (int i=0; i<n;i++)
{
if(i>1)
{
f[i] = f[i-1] + f[i-2];
}
System.out.print(f[i]+",");
}
2015-10-11 9:36 pm
// 我沒學過java,5分鐘前為了你而開始學的
// 你一行一行地比較 看看你自己錯在哪裡吧!
// 你的錯誤在於System.out.print()的呼叫參數型別錯誤
// 這還好更正,糟糕的是:
// 你的邏輯混亂,尤其在f[2] = 1; 與if(i>3){ }這2行
// 這就難改了!

import java.util.*;
public class fib {
public static void main(String args[]) {
Scanner scanner = new Scanner(System.in);
int[] f = new int[2];
for(;;){
System.out.print("\nN:");
int i, n = scanner.nextInt();
if(2>n)break;
f[0]=0; f[1]=1;
System.out.print(""+f[0]+","+f[1]);
for (i=2; i<=n;++i){
f[i&1] += f[(1+i)&1];
System.out.print("," + f[i&1]);
}
}
}
}


收錄日期: 2021-05-04 02:03:40
原文連結 [永久失效]:
https://hk.answers.yahoo.com/question/index?qid=20151011005211AAyjgOw

檢視 Wayback Machine 備份