fibonacci.go 541 B

123456789101112131415161718192021222324252627282930313233
  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: res = 0
  21. }
  22. } else {
  23. switch op {
  24. case "+":
  25. res = Fibonacci(op, n-1) + Fibonacci(op, n-2)
  26. case "*":
  27. res = Fibonacci(op, n-1) * Fibonacci(op, n-2)
  28. default: res = 0
  29. }
  30. }
  31. return
  32. }