java中的项目Euler#2

时间:2014-02-19 19:31:48

标签: java fibonacci

任何人都可以查看我的java代码,并告诉我如何修复我的代码。问题如下。我真的很感激任何帮助:)

public class problem
{
    public static void main (String args []){
        int a = 0;
        int b = 1;
        problem();
    }

    public static int problem(){

        int c = a + b;
        if (c>10){
            System.out.println(c);
            return c;
        }
        int a = b;
        int b = c;
        problem();
    }
}
  

Fibonacci序列中的每个新术语都是通过添加前两个术语生成的。从1和2开始,前10个术语将是:

     

1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...

     

通过考虑Fibonacci序列中的值不超过四百万的项,找到偶数项的总和。

1 个答案:

答案 0 :(得分:1)

一些问题。如果您希望所有方法都可以访问它,那么ab应该是静态成员变量。 problem()返回一个int,但有时只返回。这并不需要返回任何内容,因此我将其视为无效。

这个版本将打印出第一个大于10的Fibonacci数,然后停止,但是你想要第一个大于400万,你想要数字的总和。所以我们需要跟踪它。

此外,您的起始值为0 1斐波那契序列应该开始,1和2。

最后我们只想总结偶数,我们可以通过检查提醒是否为0除以2来做到这一点。

public class problem
{
    private static int a = 0;
    private static int b = 0;
    private static int sum = 0;

    public static void main (String args []){
        a = 1;    
        b = 2;
        problem();
        System.out.println("Sum = " + sum);
    }

    public static void problem(){
        if (b % 2 == 0)
        {
            sum = sum + b;
        }

        int c = a + b;
        if (c>=4000000)
        {
            return;
        }

        a = b;
        b = c;
        problem();
    }
}