首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >项目Euler数字2的问题:偶数Fibonacci数

项目Euler数字2的问题:偶数Fibonacci数
EN

Stack Overflow用户
提问于 2015-12-30 17:12:23
回答 2查看 85关注 0票数 2

这是我的代码:

代码语言:javascript
复制
public static void main(String[] args) {
    int f=1;//first number
    int s=2;//second number
    int fin=0;//final answer
    int x;
    System.out.println("1\n2");
    for (x=3; x<4000000; x=f+s){
        System.out.println(x);
        f=s;
        s=x;
        if (x%2==0){
            fin+=x;
        }
    }
    System.out.println("Sum of all even number: "+fin+2);
}

由于某些原因,当实际答案是46137302时,我将获得4613732作为我的最后答案。我不知道为什么我的答案是实际答案的十倍。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-12-30 17:13:15

您无意中发现了java的字符串连接。以下工作:

代码语言:javascript
复制
System.out.println("Sum of all even number: " + (fin+2));

你必须明确地把这些数字加起来。否则,Java将从左到右对值进行求和:字符串+实际数字,给出类似于"Sum of all even number: 4613730"的内容。然后,它会追加2给予"Sum of all even number: 46137302"。但是您需要首先对数字进行求和:您需要将它们包装在()中。

票数 4
EN

Stack Overflow用户

发布于 2015-12-30 17:29:02

这就是字符串连接的工作方式。你必须使用()

举个例子:

代码语言:javascript
复制
int x = 15, y = 25;

System.out.println("The answer is :"+ x + y); // The answer is :1525
System.out.println("The answer is :"+ (x + y)); // The answer is :40
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34533985

复制
相关文章

相似问题

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