OneCompiler

bc Fibonacci

121

pragma solidity ^0.8;

contract Fibonacci {

function fibonacci(uint256 n) public pure returns (uint256[] memory) {
    require(n > 1, "n must be > 1");

    uint256[] memory sequence = new uint256[](n + 1);

    // Fib(0) = 0
    sequence[0] = 0;

    // Fib(1) = 1
    sequence[1] = 1;
    // Fib(n) = Fib(n - 1) + Fib(n - 2)
    for (uint256 i = 2; i < sequence.length; i++) {
        sequence[i] = sequence[i - 1] + sequence[i - 2];
    }

    return sequence;
}

}