more e2 versions
This commit is contained in:
parent
be77f4b886
commit
907652a192
|
@ -0,0 +1,14 @@
|
||||||
|
using System;
|
||||||
|
|
||||||
|
public class E2 {
|
||||||
|
public static void Main() {
|
||||||
|
int sum, last, current, tmp;
|
||||||
|
last = 0;
|
||||||
|
sum = 0;
|
||||||
|
for (current = 1; current < 4000000; tmp = current, current += last, last = tmp) {
|
||||||
|
if (current % 2 == 0)
|
||||||
|
sum += current;
|
||||||
|
}
|
||||||
|
System.Console.WriteLine(sum);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,8 @@
|
||||||
|
-module(e2).
|
||||||
|
-export([e2/0, fib_count/4]).
|
||||||
|
|
||||||
|
fib_count(Last, Current, Max, Sum) when Current >= Max -> Sum;
|
||||||
|
fib_count(Last, Current, Max, Sum) when Current rem 2 == 0 -> fib_count(Current, Last + Current, Max, Sum + Current);
|
||||||
|
fib_count(Last, Current, Max, Sum) -> fib_count(Current, Last + Current, Max, Sum).
|
||||||
|
|
||||||
|
e2() -> fib_count(0, 1, 4000000, 0).
|
|
@ -0,0 +1,5 @@
|
||||||
|
fib_count(Last, Current, Max, Sum, Sum) :- Current >= Max.
|
||||||
|
fib_count(Last, Current, Max, Acc, Sum) :- 0 is Current rem 2, Next is Last + Current, NewAcc is Acc + Current, fib_count(Current, Next, Max, NewAcc, Sum).
|
||||||
|
fib_count(Last, Current, Max, Acc, Sum) :- Next is Last + Current, fib_count(Current, Next, Max, Acc, Sum).
|
||||||
|
|
||||||
|
e2(Result) :- fib_count(0, 1, 4000000, 0, Result).
|
Loading…
Reference in New Issue