Iterative C++ function that inputs a nonnegative integer

  1. Write an iterative C++ function that inputs a nonnegative integer n and returns the nth Fibonacci number.
  2. Write a recursive C++ function that inputs a nonnegative integer n and returns the nth Fibonacci number.
  3. Compare the number of operations and time taken to compute Fibonacci numbers recursively versus that needed to compute them iteratively.
  4. Use the above functions to write a C++ program for solving each of the following computational problems.


Find the exact value of f100, f500, and f1000, where fn is the nth Fibonacci number. What are times taken to find out the exact values.

Find the smallest Fibonacci number greater than 1,000,000 and greater than 1,000,000,000.

Find as many prime Fibonacci numbers as you can. It is unknown whether there are infinitely many of these. Find out the times taken to find first 10, 20, 30, 40…up to 200 and draw a graph and see the pattern.

Report:
Your report should address all of the below mentioned questions

1.
Describe the Fibonacci series and write briefly what you have done in the assignment.
2.
What are the different skills, programming techniques that you have used in order to run the experiments? How did you gain these skills? Show or link to few examples/projects of your prior work demonstrating these skills?
3.
What did you observe when you did the comparisons in Task 3 and Task 4? Explain the graph that you have drawn from Task 4.III?
4.
List at least three different applications of the Fibonacci numbers to sciences and describe one of them in details. Think of situation or a real world problem where you can apply concept of Fibonacci numbers to solve it. Explain?
5.
Write a paragraph, explaining what you have done in this assignment. What were the challenges you have faced when solving these problems. How can you improve the programs you have written to solve these problems? How can you use what you have learned going forward?

This question has been answered.

Get Answer