フィボナッチ数列に現れる偶数の値の合計をもとめる。その2
2008/03/05
java
projecteuler
計算
うう
計算するのも課題ですよね...
import java.math.BigDecimal;
import java.util.HashMap;
import java.util.Map;
public class F {
public static void main(String[] args) {
int i = 0;
int sum = 0;
while (true) {
int n = fibo(i).intValue();
if (!(n <= 4000000))
break;
if ((n % 2) != 0) {
sum += n;
}
i++;
}
System.out.println(sum);
}
public static BigDecimal fibo(int x) {
class Fibo {
Map m = new HashMap();
public BigDecimal fibo(int x) {
BigDecimal r = null;
if ((r = (BigDecimal) m.get(x)) != null)
return r;
switch (x) {
case 0:
case 1:
r = new BigDecimal(1);
break;
case 2:
r = new BigDecimal(2);
break;
default:
r = fibo(x - 1).add(fibo(x - 2));
}
m.put(x, r);
return r;
}
}
;
Fibo f = new Fibo();
return f.fibo(x);
}
}
import java.util.HashMap;
import java.util.Map;
public class F {
public static void main(String[] args) {
int i = 0;
int sum = 0;
while (true) {
int n = fibo(i).intValue();
if (!(n <= 4000000))
break;
if ((n % 2) != 0) {
sum += n;
}
i++;
}
System.out.println(sum);
}
public static BigDecimal fibo(int x) {
class Fibo {
Map m = new HashMap();
public BigDecimal fibo(int x) {
BigDecimal r = null;
if ((r = (BigDecimal) m.get(x)) != null)
return r;
switch (x) {
case 0:
case 1:
r = new BigDecimal(1);
break;
case 2:
r = new BigDecimal(2);
break;
default:
r = fibo(x - 1).add(fibo(x - 2));
}
m.put(x, r);
return r;
}
}
;
Fibo f = new Fibo();
return f.fibo(x);
}
}
関連
プログラマメモ2: [java]フィボナッチ数列
:
おお、対応していただいたのですね。
ありがとうございます^^
コメントありがとうございます。
精進しますです。