RE: How do I program a fibonacci function in c?

Question see above

Add Comment
1 Answers
Here's a simple example of a Fibonacci function in C using recursion: ```c #include int fibonacci(int n) { if(n <= 1) { return n; } return fibonacci(n - 1) + fibonacci(n - 2); } int main() { int n = 10; printf("Fibonacci number %d is: %d\n", n, fibonacci(n)); return 0; } ``` In the function `fibonacci()`, we calculate the nth Fibonacci number recursively. The base condition for this recursion is if `n` is less than or equal to 1, in which case `n` is returned as it is since the first two Fibonacci numbers are 0 and 1 respectively. If `n` is greater than 1, we get the nth Fibonacci number by summing up the (n-1)th and (n-2)th Fibonacci numbers recursively. This recursive implementation is simple and works well for small values of `n`. It is derived directly from the mathematical definition of Fibonacci numbers. However, for larger values of `n`, it has significant performance issues due to repeated calculations of the same sub-problems. For large `n`, an iterative approach or the use of dynamic programming could be more efficient which avoid re-computation by storing the calculated values. Here's an example of iterative approach: ```c #include int fibonacci_iter(int n) { if (n <= 1) { return n; } int fib = 1, prev_fib = 1; for (int i = 2; i < n; i++) { int temp = fib; fib += prev_fib; prev_fib = temp; } return fib; } int main() { int n = 10; printf("Fibonacci number %d is: %d\n", n, fibonacci_iter(n)); return 0; } ``` The time complexity for this solution is O(n), which is more optimal than the previous solution with a time complexity of O(2^n). Every problem has its own suitable solution. In programming, always consider the trade-offs before choosing an algorithm.
Answered on July 17, 2023.
Add Comment

Your Answer

By posting your answer, you agree to the privacy policy and terms of service.