Fibonacci

Benchmark created on


Description

fibonacci using iterator protocol.

Preparation HTML

<script>

const fibonacciIterator = (n) => {
    let i = 1;
    let [prev, cur] = [0n, 1n];

    return {
        [Symbol.iterator]() {
            return this;   
        },

        next() {
            if (n === 0) {
                return 0;
            }
            
            [prev, cur] = [cur, prev+cur];
            return { value: cur, done: i++ === n };
        }
    }
};

function fibonacci_iterator(n) {    
    let answer = 0n;
    for (const x of fibonacciIterator(n)) {
        answer = x % 1234567n;
    }
    return answer;
}

function fibonacci_array(num) {
  let fibo = [0n, 1n];
  for(let i = 2; i <= num; i++){
        fibo[i] = fibo[i-1] + fibo[i-2];
  }
  return fibo[num];
}
</script>

Test runner

Ready to run.

Testing in
TestOps/sec
find 100,000th fibo using iterator
fibonacci_iterator(100000);
ready
find 100,000th fibo using array
fibonacci_array(100000);
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.