我试图找到低于4密耳的所有偶数的斐波那契数的总和。 到目前为止这是我的代码。它向我展示了一个数字但项目欧拉说这是错误的。 有人能提出一些建议吗?
public static void main(String[] args) {
System.out.println(fibonacci());
}
public static int count(){
int sum = 0;
for(int i =0; i<1000;i++){
if(i%3==0||i%5==0){
sum+=i;
}
}
return sum;
}
public static long fibonacci(){
ArrayList<Integer> even = new ArrayList<Integer>();
int first = 1;
int second = 1;
int third = 0;
long sum = 0;
while(!(third>=3999999)){
third = first+second;
first = second;
second = third;
if(first%2==0){
even.add( new Integer(first));
}
if(second%2==0){
even.add( new Integer(second));
}
if(third%2==0){
even.add( new Integer(third));
}
}
for(int i = 0; i<=even.size()-1;i++){
sum+=even.get(i);
}
return sum;
}
答案 0 :(得分:1)
class Euler2 {
public static void main(String args[]) {
long n1=0,n2=1,n3,i,j;
long sum = n1 + n2;
for(i =2 ;i < 250; i++) {
if (n3 > 40000000) {
break;
}
else {
n3 = n1 + n2;
if (n3%2 == 0) {
sum += n3;
}
n1 = n2;
n2 = n3;
}
}
System.out.println("sum of all values: "+sum);
}
}
答案 1 :(得分:0)
所有偶数的总和
long sum = 0
for (int x = 1; x <= 200; x++) {
if (x % 2 == 0)
sum += x;
}
我不知道你的逻辑是什么。
另外我认为结果需要放在很长的
中答案 2 :(得分:0)
您的代码存在一些问题:
< 3999999
,而问题是要求数字<= 4000000
(尽管这不会改变结果)int
转换为Integer
,甚至 if ,您不应使用new Integer
,而应使用Integer.valueOf
来使用缓存for (Integer n : even) {sum += n;}
... third
,然后是{{1}最后,当它在second
以下是一些应该有效的伪代码:
first