24 Feb 2024




Beginner

The Fibonacci sequence is a series of numbers where each number is the sum of the two preceding ones, usually starting with 0 and 1. So, the sequence goes: 0, 1, 1, 2, 3, 5, 8, 13, 21, and so forth. In mathematical terms, the sequence is defined recursively by the formula:

[ F(n) = F(n-1) + F(n-2) ]

with initial conditions ( F(0) = 0 ) and ( F(1) = 1 ).

Calculate the Fibonacci sequence up to a certain number using Iterative Approach:

using System;

class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("Enter the number up to which you want to generate the Fibonacci sequence:");
        int n = Convert.ToInt32(Console.ReadLine());

        Console.WriteLine("Fibonacci sequence up to " + n + ":");
        PrintFibonacciSequence(n);
    }

    static void PrintFibonacciSequence(int n)
    {
        int a = 0, b = 1, c = 0;
        
        // Handling the base cases
        if (n >= 1)
            Console.Write(a + " ");
        if (n >= 2)
            Console.Write(b + " ");

        // Generating the Fibonacci sequence
        while ((c = a + b) <= n)
        {
            Console.Write(c + " ");
            a = b;
            b = c;
        }
    }
}

Explanation:

  • We start by initializing three variables: a, b, and c, where a and b represent the first two Fibonacci numbers.
  • We handle the base cases separately (0 and 1) and print them if n is greater than or equal to 1 or 2 respectively.
  • We then enter a loop where we calculate the next Fibonacci number c as the sum of the previous two numbers (a and b).
  • We print c, update a to b, and b to c to prepare for the next iteration.
  • The loop continues until c exceeds n.

Calculate the Fibonacci sequence up to a certain number using Recursive Approach:

using System;

class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("Enter the number of terms for the Fibonacci sequence:");
        int n = Convert.ToInt32(Console.ReadLine());

        Console.WriteLine("Fibonacci sequence:");
        for (int i = 0; i < n; i++)
        {
            Console.Write(Fibonacci(i) + " ");
        }
    }

    static int Fibonacci(int n)
    {
        if (n <= 1)
            return n;
        else
            return Fibonacci(n - 1) + Fibonacci(n - 2);
    }
}

Explanation:

  • The Fibonacci function takes an integer n as input and returns the nth Fibonacci number.
  • It's implemented using recursion. The base case is when n is 0 or 1, in which case it returns n.
  • For n greater than 1, it recursively calls itself with n - 1 and n - 2 to calculate the Fibonacci number for those indices.
  • The function continues to recurse until it reaches the base case, and then it starts returning values back up the call stack.

Comparison of Iterative and Recursive Approach:

  • The iterative approach directly calculates each Fibonacci number up to n by iteratively adding the previous two numbers.
  • The recursive approach calculates each Fibonacci number by recursively summing the previous two Fibonacci numbers until it reaches the base case.

Advantages and Considerations:

  • The iterative approach is generally more efficient and faster for larger n due to the avoidance of repetitive function calls and overhead associated with recursion.
  • The recursive approach is simpler to implement but may suffer from performance issues and stack overflow errors for large n.
  • In practice, for small n, both methods are feasible. However, for larger n, the iterative approach is preferred due to its better performance characteristics.
c-sharp
fibonacci