Give a number N, print alternate fibonacci numbers till n-th Fibonacci.
Examples:
Input : N = 7 Output : 0 1 3 8 Input : N = 15 Output : 0 1 3 8 21 55 144 377
Read method 2 in the following article : fibonacci number
Approach:Using dynamic programming approach. Keep storing the previously calculated fibonacci numbers and using the previous two to store the next fibonacci number.
C++
// Alternate Fibonacci Series using Dynamic Programming#include <bits/stdc++.h>using namespace std;void alternateFib(int n){ if (n < 0) return; /* 0th and 1st number of the series are 0 and 1*/ int f1 = 0; int f2 = 1; cout << f1 << " "; for (int i = 2; i <= n; i++) { int f3 = f2 + f1; if (i % 2 == 0) cout << f3 << " "; f1 = f2; f2 = f3; }}int main(){ int N = 15; alternateFib(N); return 0;} |
Java
// Alternate Fibonacci Series // using Dynamic Programmingimport java.io.*;class GFG {static void alternateFib(int n){ if (n < 0) return; /* 0th and 1st number of the series are 0 and 1*/ int f1 = 0; int f2 = 1; System.out.print(f1 + " "); for (int i = 2; i <= n; i++) { int f3 = f2 + f1; if (i % 2 == 0) System.out.print(f3 + " "); f1 = f2; f2 = f3; }}// Driver Codepublic static void main (String[] args) { int N = 15; alternateFib(N);}}// This code is contributed// by chandan_jnu. |
Python3
# Alternate Fibonacci Series# using Dynamic Programmingdef alternateFib(n): if (n < 0): return -1; # 0th and 1st number of # the series are 0 and 1 f1 = 0; f2 = 1; print(f1, end = " "); for i in range(2, n + 1): f3 = f2 + f1; if (i % 2 == 0): print(f3, end = " "); f1 = f2; f2 = f3;# Driver CodeN = 15;alternateFib(N);# This code is contributed by mits |
C#
// Alternate Fibonacci Series // using Dynamic Programmingusing System;class GFG {static void alternateFib(int n){ if (n < 0) return; /* 0th and 1st number of the series are 0 and 1*/ int f1 = 0; int f2 = 1; Console.Write(f1 + " "); for (int i = 2; i <= n; i++) { int f3 = f2 + f1; if (i % 2 == 0) Console.Write(f3 + " "); f1 = f2; f2 = f3; }}// Driver Codepublic static void Main () { int N = 15; alternateFib(N);}}// This code is contributed// by chandan_jnu. |
PHP
<?php// Alternate Fibonacci Series// using Dynamic Programmingfunction alternateFib($n){ if ($n < 0) return; /* 0th and 1st number of the series are 0 and 1*/ $f1 = 0; $f2 = 1; echo $f1 . " "; for ($i = 2; $i <= $n; $i++) { $f3 = $f2 + $f1; if ($i % 2 == 0) echo $f3 . " "; $f1 = $f2; $f2 = $f3; }}// Driver Code$N = 15;alternateFib($N);// This code is contributed by mits?> |
Javascript
<script>// Alternate Fibonacci Series // using Dynamic Programmingfunction alternateFib(n){ if (n < 0) return; // 0th and 1st number of the // series are 0 and 1 var f1 = 0; var f2 = 1; document.write(f1 + " "); for(i = 2; i <= n; i++) { var f3 = f2 + f1; if (i % 2 == 0) document.write(f3 + " "); f1 = f2; f2 = f3; }}// Driver Codevar N = 15;alternateFib(N);// This code is contributed by gauravrajput1 </script> |
0 1 3 8 21 55 144 377
Time Complexity : O(n)
Auxiliary Space : O(1)
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!
