fibonacci.go 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. package main
  2. import (
  3. "fmt"
  4. "time"
  5. )
  6. func main() {
  7. result := 0
  8. start := time.Now()
  9. for i := 0; i <= 25; i++ {
  10. result = fibonacci(i)
  11. fmt.Printf("fibonacci(%d) is: %d\n", i, result)
  12. }
  13. end := time.Now()
  14. delta := end.Sub(start)
  15. fmt.Printf("longCalculation took this amount of time: %s\n", delta)
  16. }
  17. func fibonacci(n int) (res int) {
  18. if n <= 1 {
  19. res = 1
  20. } else {
  21. res = fibonacci(n-1) + fibonacci(n-2)
  22. }
  23. return
  24. }
  25. /* Output:
  26. fibonacci(0) is: 1
  27. fibonacci(1) is: 1
  28. fibonacci(2) is: 2
  29. fibonacci(3) is: 3
  30. fibonacci(4) is: 5
  31. fibonacci(5) is: 8
  32. fibonacci(6) is: 13
  33. fibonacci(7) is: 21
  34. fibonacci(8) is: 34
  35. fibonacci(9) is: 55
  36. fibonacci(10) is: 89
  37. fibonacci(11) is: 144
  38. fibonacci(12) is: 233
  39. fibonacci(13) is: 377
  40. fibonacci(14) is: 610
  41. fibonacci(15) is: 987
  42. fibonacci(16) is: 1597
  43. fibonacci(17) is: 2584
  44. fibonacci(18) is: 4181
  45. fibonacci(19) is: 6765
  46. fibonacci(20) is: 10946
  47. fibonacci(21) is: 17711
  48. fibonacci(22) is: 28657
  49. fibonacci(23) is: 46368
  50. fibonacci(24) is: 75025
  51. fibonacci(25) is: 121393
  52. longCalculation took this amount of time: 3.0001ms
  53. */