Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package main
- import (
- "fmt"
- "time"
- )
- type partitions map[[2]int]int64
- func (xs *partitions) count(m, n int) (answer int64) {
- if m < n {
- return
- }
- if m == n || n == 1 {
- return int64(1)
- }
- if x, ok := (*xs)[[2]int{m, n}]; ok {
- return x
- }
- for i := 1; i <= n; i++ {
- answer += xs.count(m-n, i)
- }
- (*xs)[[2]int{m, n}] = answer
- return
- }
- func problem76() (answer int64) {
- p := make(partitions)
- for n := 2; n <= 100; n++ {
- answer += p.count(100, n)
- }
- return
- }
- func main() {
- start := time.Now()
- fmt.Println(problem76())
- end := time.Now()
- fmt.Println(end.Sub(start).Seconds())
- }
Add Comment
Please, Sign In to add comment