交替斐波那契数

给出一个数字N,打印备用 斐波那契数 直到第n个斐波那契。

null

例如:

Input :  N = 7Output : 0 1 3 8 Input  : N = 15Output : 0 1 3 8 21 55 144 377 

阅读 方法2 在以下文章中: 斐波那契数

方法: 使用 动态规划 方法继续存储之前计算的斐波那契数,并使用前两个存储下一个斐波那契数。

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>


输出:

0 1 3 8 21 55 144 377

时间复杂性: O(n) 辅助空间: O(1)

© 版权声明
THE END
喜欢就支持一下吧
点赞10 分享