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 Programming import 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 Code public static void main (String[] args)
{ int N = 15 ;
alternateFib(N);
} } // This code is contributed // by chandan_jnu. |
Python3
# Alternate Fibonacci Series # using Dynamic Programming def 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 Code N = 15 ;
alternateFib(N); # This code is contributed by mits |
C#
// Alternate Fibonacci Series // using Dynamic Programming using 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 Code public static void Main ()
{ int N = 15;
alternateFib(N);
} } // This code is contributed // by chandan_jnu. |
PHP
<?php // Alternate Fibonacci Series // using Dynamic Programming function 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 Programming function 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 Code var N = 15;
alternateFib(N); // This code is contributed by gauravrajput1 </script> |
Output:
0 1 3 8 21 55 144 377
Time Complexity : O(n)
Auxiliary Space : O(1)