diff --git a/Codes/C++/Code-A1 (Fibonacci).cpp b/Codes/C++/Code-A1 (Fibonacci).cpp index aaf993c..2cc988c 100644 --- a/Codes/C++/Code-A1 (Fibonacci).cpp +++ b/Codes/C++/Code-A1 (Fibonacci).cpp @@ -3,24 +3,34 @@ #include using namespace std; +int recursiveSteps = 0; +int iterativeSteps = 0; + // Recursive function for Fibonacci int fibRecursive(int n) { + recursiveSteps++; if (n <= 1) - return n; // Base case: fib(0)=0, fib(1)=1 + return n; return fibRecursive(n - 1) + fibRecursive(n - 2); } // Non-recursive (Iterative) Fibonacci -int fibIterative(int n) { - if (n <= 1) - return n; +void fibIterative(int n) { + if (n <= 0) + return; int prev = 0, curr = 1, next; - for (int i = 2; i <= n; i++) { + cout << prev << " "; + if (n == 1) + return; + + cout << curr << " "; + for (int i = 2; i < n; i++) { next = prev + curr; + cout << next << " "; prev = curr; curr = next; + iterativeSteps++; } - return curr; } int main() { @@ -29,22 +39,26 @@ int main() { cin >> n; cout << "\nFibonacci Series using Recursion: "; - for (int i = 0; i < n; i++) + for (int i = 0; i < n; i++) { cout << fibRecursive(i) << " "; + } + cout << "\nTotal Recursive Steps: " << recursiveSteps; - cout << "\nFibonacci Series using Iteration: "; - for (int i = 0; i < n; i++) - cout << fibIterative(i) << " "; + cout << "\n\nFibonacci Series using Iteration: "; + fibIterative(n); + cout << "\nTotal Iterative Steps: " << iterativeSteps; cout << endl; return 0; } -// SAMPLE OUTPUT +// SAMPLE OUTOUT /* -* $ ./a.out * Enter the number of terms: 5 * * Fibonacci Series using Recursion: 0 1 1 2 3 +* Total Recursive Steps: 19 +* * Fibonacci Series using Iteration: 0 1 1 2 3 +* Total Iterative Steps: 3 */