Ybadoo - Soluções em Software Livre
Tutoriais
Programação Orientada a Objetos

Desenvolva uma função ou um conjunto de funções em LISP, que apresente a média dos termos da série de Fibonacci. A série de Fibonacci é formada pela sequência 1, 1, 2, 3, 5, 8, 13, 21, 34, .... A série de Fibonacci é de grande importância matemática, e a lei básica é que a partir do terceiro termo, todos os termos são a soma dos dois últimos termos. O número de termos será fornecido pelo usuário, devendo ser um valor inteiro e positivo. Por exemplo, caso o número de termos fornecido pelo usuário seja 7, o programa deverá apresentar como resposta o valor 4.714285714, ou seja, (1 + 1 + 2 + 3 + 5 + 8 + 13) / 7. Caso o usuário forneça um valor inválido para o número de termos, o programa deverá apresentar como resposta o valor nil.

 

Arquivo Fibonacci.lisp

(defun fibonacciIteration (a b count)
  (if (zerop count)
      b
      (+ b (fibonacciIteration (+ a b) a (- count 1)))
  )
)

(defun fibonacci (n)
  (if (<= n 0)
    nil
    (/ (fibonacciIteration 1 0 n) n)
  )
)

(fibonacci 7)