斐波那契java程序

时间:2014-02-21 19:41:56

标签: java fibonacci

创建一个程序,输入一个数字并提供其等效的斐波纳契数作为输出。但是我的代码有问题:c

import java.util.Scanner;
public class Fibonacci {
    public static void main(String[] args) {
        Scanner in = new Scanner (System.in);
        int prev, next, num, sum = 0, n;
        prev=next=1;

        System.out.print("Input number: ");
        num = in.nextInt();

        if ((num == 1) || (num ==2))
            System.out.println(prev);

        else {
            for( n=1; n<=prev; n++ ) {
                sum = prev + next;
                prev = next;
                next = sum;
            }

            System.out.println(sum);
        }

    }
}

有些事我错了,我看不到。救命? :C

3 个答案:

答案 0 :(得分:2)

n超过prev时,您正在停止循环,因此您无法获得正确的数字。当你通过num时停止它:

for(n = 1; n <= num; n++) {

示例运行:

Input number: 6
21

答案 1 :(得分:1)

将for循环更改为:

for( n=2; n<num; n++ )

那将解决你的问题。

说明: 由于你已经确定1或2会给你一个1,所以启动你的循环@ 2.循环直到n变得大于输入的数字。这将解决您遇到的问题。

答案 2 :(得分:0)

如果您想获得用户提供输入的fiboniki编号次数,那么您需要在for循环中进行迭代。

 for( n=1; n<=num; n++ ) {
                    sum = prev + next;
                    prev = next;
                    next = sum;
                    System.out.println(sum);
                }

同时打印您需要将其放入循环中的数字。