fibonacci.go 504 B

1234567891011121314151617181920212223242526272829303132333435
  1. package fibo
  2. /*
  3. func Fibonacci(n int) (res int) {
  4. if n <= 1 {
  5. res = 1
  6. } else {
  7. res = Fibonacci(n-1) + Fibonacci(n-2)
  8. }
  9. return
  10. }
  11. */
  12. // accepts a general operation op:
  13. func Fibonacci(op string, n int) (res int) {
  14. if n <= 1 {
  15. switch op {
  16. case "+":
  17. res = 1
  18. case "*":
  19. res = 2
  20. default:
  21. res = 0
  22. }
  23. } else {
  24. switch op {
  25. case "+":
  26. res = Fibonacci(op, n-1) + Fibonacci(op, n-2)
  27. case "*":
  28. res = Fibonacci(op, n-1) * Fibonacci(op, n-2)
  29. default:
  30. res = 0
  31. }
  32. }
  33. return
  34. }