Last Updated : 03 Jan, 2025
Try it on GfG Practice
Given an integer n. The task is to find the first n Fibonacci Numbers.
Examples :
Recursive Approach - O(n*2n) Time and O(n) SpaceInput: n = 3
Output: 0 1 1Input: n = 7
Output: 0 1 1 2 3 5 8
Find nth fibonacci number by calling for n-1 and n-2 and adding their return value. The base case will be if n=0 or n=1 then the fibonacci number will be 0 and 1 respectively.
C++
#include <iostream>
#include <vector>
using namespace std;
int findFibonacci(int n) {
// base case n = 0 n = 1
if (n == 0) {
return 0;
} else if (n == 1) {
return 1;
} else {
return findFibonacci(n - 2) + findFibonacci(n - 1);
}
}
vector<int> fibonacciNumbers(int n) {
vector<int> ans;
for (int i = 0; i < n; i++) {
ans.push_back(findFibonacci(i));
}
return ans;
}
int main() {
int n = 7;
vector<int> res = fibonacciNumbers(n);
for (int i = 0; i < res.size(); i++) {
cout << res[i] << " ";
}
return 0;
}
C
#include <stdio.h>
#include <stdlib.h>
int findFibonacci(int n) {
// base case n = 0 , n = 1
if (n == 0) {
return 0;
} else if (n == 1) {
return 1;
} else {
return findFibonacci(n - 2) + findFibonacci(n - 1);
}
}
int* fibonacciNumbers(int n) {
int* ans = (int*)malloc(n * sizeof(int));
for (int i = 0; i < n; i++) {
ans[i] = findFibonacci(i);
}
return ans;
}
int main() {
int n = 7;
int* res = fibonacciNumbers(n);
for (int i = 0; i < n; i++) {
printf("%d ", res[i]);
}
free(res);
return 0;
}
Java
import java.util.ArrayList;
import java.util.List;
class GfG {
static int findFibonacci(int n) {
// base case n = 0 , n = 1
if (n == 0) {
return 0;
} else if (n == 1) {
return 1;
} else {
return findFibonacci(n - 2) + findFibonacci(n - 1);
}
}
static List<Integer> fibonacciNumbers(int n) {
List<Integer> ans = new ArrayList<>();
for (int i = 0; i < n; i++) {
ans.add(findFibonacci(i));
}
return ans;
}
public static void main(String[] args) {
int n = 7;
List<Integer> res = fibonacciNumbers(n);
for (int i = 0; i < res.size(); i++) {
System.out.print(res.get(i) + " ");
}
}
}
Python
def findFibonacci(n):
#base case n = 0 , n = 1
if n == 0:
return 0
elif n == 1:
return 1
else:
return findFibonacci(n-2) + findFibonacci(n-1)
def fibonacciNumbers(n):
ans = []
for i in range(n):
ans.append(findFibonacci(i))
return ans
if __name__ == '__main__':
n = 7
res = fibonacciNumbers(n)
for num in res:
print(num, end=' ')
C#
using System;
using System.Collections.Generic;
class GfG {
static int FindFibonacci(int n) {
// base case n = 0 , n = 1
if (n == 0) {
return 0;
} else if (n == 1) {
return 1;
} else {
return FindFibonacci(n - 2) + FindFibonacci(n - 1);
}
}
static List<int> FibonacciNumbers(int n) {
List<int> ans = new List<int>();
for (int i = 0; i < n; i++) {
ans.Add(FindFibonacci(i));
}
return ans;
}
static void Main() {
int n = 7;
List<int> res = FibonacciNumbers(n);
foreach (int num in res) {
Console.Write(num + " ");
}
}
}
JavaScript
function findFibonacci(n) {
//base case n = 0 , n = 1
if (n === 0) {
return 0;
} else if (n === 1) {
return 1;
} else {
return findFibonacci(n - 2) + findFibonacci(n - 1);
}
}
function fibonacciNumbers(n) {
let ans = [];
for (let i = 0; i < n; i++) {
ans.push(findFibonacci(i));
}
return ans;
}
// Driver Code
let n = 7;
let res = fibonacciNumbers(n);
console.log(res.join(' '));
Time Complexity: O(n*2n)
Auxiliary Space: O(n), For recursion call stack.
C++To find Fibonacci numbers by maintaining two variables (
f1
andf2
) to represent consecutive Fibonacci numbers. Starting with 0 and 1, it iteratively computes the next Fibonacci number, appends it to the result list, and updates the variables accordingly.
#include <bits/stdc++.h>
using namespace std;
vector<int> fibonacciNumbers(int n) {
vector<int> ans;
int f1 = 0, f2 = 1, i;
ans.push_back(f1);
for (i = 1; i < n; i++) {
ans.push_back(f2);
int next = f1 + f2;
f1 = f2;
f2 = next;
}
return ans;
}
int main() {
int n = 7;
vector<int> res = fibonacciNumbers(n);
for (int i = 0; i < res.size(); i++) {
cout << res[i] << " ";
}
return 0;
}
Java
import java.util.ArrayList;
import java.util.List;
class GfG {
static List<Integer> fibonacciNumbers(int n) {
List<Integer> ans = new ArrayList<>();
int f1 = 0, f2 = 1;
ans.add(f1);
for (int i = 1; i < n; i++) {
ans.add(f2);
int next = f1 + f2;
f1 = f2;
f2 = next;
}
return ans;
}
public static void main(String[] args) {
int n = 7;
List<Integer> res = fibonacciNumbers(n);
for (int num : res) {
System.out.print(num + " ");
}
}
}
Python
def fibonacci_numbers(n):
ans = []
f1, f2 = 0, 1
ans.append(f1)
for i in range(1, n):
ans.append(f2)
next = f1 + f2
f1 = f2
f2 = next
return ans
if __name__ == "__main__":
n = 7
res = fibonacci_numbers(n)
print(' '.join(map(str, res)))
C#
using System;
using System.Collections.Generic;
class GfG {
static List<int> FibonacciNumbers(int n) {
List<int> ans = new List<int>();
int f1 = 0, f2 = 1;
ans.Add(f1);
for (int i = 1; i < n; i++) {
ans.Add(f2);
int next = f1 + f2;
f1 = f2;
f2 = next;
}
return ans;
}
static void Main() {
int n = 7;
List<int> res = FibonacciNumbers(n);
foreach (int num in res) {
Console.Write(num + " ");
}
}
}
JavaScript
function fibonacciNumbers(n) {
let ans = [];
let f1 = 0, f2 = 1;
ans.push(f1);
for (let i = 1; i < n; i++) {
ans.push(f2);
let next = f1 + f2;
f1 = f2;
f2 = next;
}
return ans;
}
// Driver Code
let n = 7;
let res = fibonacciNumbers(n);
console.log(res.join(' '));
Time Complexity: O(n)
Auxiliary Space: O(1)
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4