-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy path2.go
40 lines (34 loc) · 871 Bytes
/
2.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
package main
/*
Each new term in the Fibonacci sequence is generated by adding the previous two terms. By starting with 1 and 2, the first 10 terms will be:
1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...
By considering the terms in the Fibonacci sequence whose values do not exceed four million, find the sum of the even-valued terms.
*/
import (
"net/http"
"encoding/json"
)
func EulerTwoHandler(rw http.ResponseWriter, req *http.Request) {
sum := fibSum(4000000)
responseData := map[string]interface{} {
"result" : "OK",
"sum": sum,
}
jsonEncoder := json.NewEncoder(rw)
jsonEncoder.Encode(responseData)
}
func fibSum(until int) int {
a := 1
b := 2
c := a + b
sum := 2 // to account for b
for c < until {
if c % 2 == 0 {
sum += c
}
a = b
b = c
c = b + a
}
return sum
}