Guest User

Untitled

a guest
Oct 17th, 2018
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.58 KB | None | 0 0
  1. package main
  2.  
  3. import (
  4. "fmt"
  5. "time"
  6. )
  7.  
  8. type partitions map[[2]int]int64
  9.  
  10. func (xs *partitions) count(m, n int) (answer int64) {
  11. if m < n {
  12. return
  13. }
  14. if m == n || n == 1 {
  15. return int64(1)
  16. }
  17. if x, ok := (*xs)[[2]int{m, n}]; ok {
  18. return x
  19. }
  20. for i := 1; i <= n; i++ {
  21. answer += xs.count(m-n, i)
  22. }
  23. (*xs)[[2]int{m, n}] = answer
  24. return
  25. }
  26.  
  27. func problem76() (answer int64) {
  28. p := make(partitions)
  29. for n := 2; n <= 100; n++ {
  30. answer += p.count(100, n)
  31. }
  32. return
  33. }
  34.  
  35. func main() {
  36. start := time.Now()
  37. fmt.Println(problem76())
  38. end := time.Now()
  39. fmt.Println(end.Sub(start).Seconds())
  40. }
Add Comment
Please, Sign In to add comment