w3resource

Rust Program: Calculate nth Fibonacci number

Rust Functions and Control Flow: Exercise-6 with Solution

Write a Rust program that implements a function to calculate the nth Fibonacci number.

Sample Solution:

Rust Code:

// Define a function named 'fibonacci' that takes a non-negative integer 'n' as input and returns the nth Fibonacci number
fn fibonacci(n: u64) -> u64 {
    if n == 0 {
        return 0; // Base case: Fibonacci(0) is 0
    } else if n == 1 {
        return 1; // Base case: Fibonacci(1) is 1
    }

    let mut fib = (0, 1); // Initialize a tuple to store the Fibonacci sequence (F(n-1), F(n))
    
    for _ in 2..=n {
        fib = (fib.1, fib.0 + fib.1); // Update the tuple to store the next Fibonacci number
    }

    fib.1 // Return the nth Fibonacci number
}

fn main() {
    let n = 10; // Define the value of 'n' for which Fibonacci number is to be calculated

    // Call the 'fibonacci' function with the specified value of 'n'
    let result = fibonacci(n);

    // Print the nth Fibonacci number
    println!("The {}th Fibonacci number is: {}", n, result);
}

Output:

The 10th Fibonacci number is: 55

Explanation:

Here's a brief explanation of the above Rust code:

  • 'fn fibonacci(n: u64) -> u64 { ... }': This is a function named 'fibonacci' that takes a non-negative integer 'n' as input and returns the nth Fibonacci number as a 'u64' (unsigned 64-bit integer).
  • Base cases: If 'n' is 0 or 1, the Fibonacci number is defined as 0 and 1 respectively. These cases are handled explicitly.
  • In the iterative loop, we use a tuple 'fib' to store the Fibonacci sequence '(F(n-1), F(n))'. We start with the initial values '(0, 1)'.
  • Iterate from 2 to 'n', updating the tuple in each iteration to calculate the next Fibonacci number.
  • Next return the second element of the tuple 'fib' which represents the nth Fibonacci number.
  • In the 'main' function, we define the value of 'n' for which the Fibonacci number is to be calculated.
  • Finally we call the 'fibonacci' function with the specified value of 'n' and print the result.

Rust Code Editor:

Previous: Rust Function: Reverse a string.
Next: Rust Function: Celsius to Fahrenheit conversion.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Follow us on Facebook and Twitter for latest update.