首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java中的Euler #2项目

java中的Euler #2项目
EN

Stack Overflow用户
提问于 2014-02-19 19:31:48
回答 1查看 389关注 0票数 0

有人能看看我的java代码,并告诉我如何修复我的代码吗?问题如下。我非常感谢你的帮助:)

代码语言:javascript
复制
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序列中值不超过400万的项,找出偶数项的和。

EN

回答 1

Stack Overflow用户

发布于 2014-02-19 20:07:26

几个问题。ab应该是静态成员变量,如果您希望所有的方法都能够访问它的话。problem()返回一个int,但有时返回。这实际上不需要返回任何东西,所以我使它无效。

这个版本将打印出第一个斐波那契数大于10,然后停止,但是你想要第一个大于400万,你想要数字之和。所以我们需要追踪这点。

另外,您的起始值是0,1,Fibonacci序列应该开始,1和2。

最后,我们只想对偶数进行求和,我们可以用除以2来检查提醒是否为0。

代码语言:javascript
复制
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();
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21890479

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档