Move History

Fork Selected
  • Description

    Finds fibonacci number by given index using iteration

    Code
    (ns fibonacci)
    
    (defn get-fibonacci-number [index]
      "Finds fibonacci number by given index using iteration"
      (loop [x 0 y 1 z index]
        (if (< z 1) x (recur y (+ x y) (dec z)))))
    Test Cases
    (ns fibonacci-test
      (:require [clojure.test :refer :all]
                [fibonacci :refer [get-fibonacci-number]]))
                
    (deftest get-fibonacci-number-test
      (is (= (get-fibonacci-number (- 10)) 0))
      (is (= (get-fibonacci-number 0) 0))
      (is (= (get-fibonacci-number 1) 1))
      (is (= (get-fibonacci-number 2) 1))
      (is (= (get-fibonacci-number 3) 2))
      (is (= (get-fibonacci-number 4) 3))
      (is (= (get-fibonacci-number 5) 5))
      (is (= (get-fibonacci-number 10) 55))
      (is (= (get-fibonacci-number 30) 832040))
      (is (= (get-fibonacci-number 50) 12586269025)))
  • Code
    • (ns fibonacci)
    • (defn get-fibonacci-number [index]
    • "Finds fibonacci number by given index"
    • (if (<= index 0) 0)
    • (if (<= index 2) 1
    • (+ (get-fibonacci-number (- index 1))
    • (get-fibonacci-number (- index 2)))))
    • "Finds fibonacci number by given index using iteration"
    • (loop [x 0 y 1 z index]
    • (if (< z 1) x (recur y (+ x y) (dec z)))))
    Test Cases
    • (ns fibonacci-test
    • (:require [clojure.test :refer :all]
    • [fibonacci :refer [get-fibonacci-number]]))
    • (deftest get-fibonacci-number-test
    • (is (get-fibonacci-number (- 10)) 0)
    • (is (get-fibonacci-number 0) 0)
    • (is (get-fibonacci-number 1) 1)
    • (is (get-fibonacci-number 2) 1)
    • (is (get-fibonacci-number 3) 2)
    • (is (get-fibonacci-number 4) 3)
    • (is (get-fibonacci-number 5) 5)
    • (is (get-fibonacci-number 10) 55)
    • (is (get-fibonacci-number 30) 832040))
    • (is (= (get-fibonacci-number (- 10)) 0))
    • (is (= (get-fibonacci-number 0) 0))
    • (is (= (get-fibonacci-number 1) 1))
    • (is (= (get-fibonacci-number 2) 1))
    • (is (= (get-fibonacci-number 3) 2))
    • (is (= (get-fibonacci-number 4) 3))
    • (is (= (get-fibonacci-number 5) 5))
    • (is (= (get-fibonacci-number 10) 55))
    • (is (= (get-fibonacci-number 30) 832040))
    • (is (= (get-fibonacci-number 50) 12586269025)))