# How to print a Fibonacci series up to a given number in Java?

Fibonacci series is a special type of series in which the next number is the sum of the previous two numbers. For example, 1 1 2 3 5 8 13 21…. up to a given number.

### Solution #1 : Using Recursion

FibonacciSeriesWithRecursion.java

```package com.javacodepoint.programs;

import java.util.Scanner;

public class FibonacciSeriesWithRecursion {

// initiating first two numbers of the Fibonacci series
static int number1 = 0;
static int number2 = 1;

public static void main(String[] args) {

// Taking input from the user to print Fibonacci series up to how many numbers

System.out.println("Enter number up to which Fibonacci series to print:");

// Reading user input using Scanner object
int upto = new Scanner(System.in).nextInt();

// Printing first two numbers
System.out.print(number1 + " " + number2);

// Calling recursive function by decreasing 2 because two numbers are already printed
printFibonacci(upto - 2);

}

/*
* Recursive function
*/
public static void printFibonacci(int count) {

if (count > 0) {
int nextNumber = number1 + number2;
number1 = number2;
number2 = nextNumber;

System.out.print(" " + nextNumber);

// Call the recursive function again
printFibonacci(count - 1);
}
}
}
```

OUTPUT:

Enter number up to which Fibonacci series to print:
12
0 1 1 2 3 5 8 13 21 34 55 89

### Solution #2 : Without Using Recursion

FibonacciSeries.java

```package com.javacodepoint.programs;

import java.util.Scanner;

public class FibonacciSeries {

public static void main(String[] args) {

// Taking input from the user to print Fibonacci series up to how many numbers

System.out.println("Enter number up to which Fibonacci series to print:");

// Reading user input using Scanner object
int upto = new Scanner(System.in).nextInt();

// Initiating first two numbers of the Fibonacci series
int number1 = 0;
int number2 = 1;

// Printing first two numbers
System.out.print(number1 + " " + number2);

// Start the loop from 3 because first two numbers are already printed
for (int i = 3; i <= upto; i++) {
int nextNumber = number1 + number2;
System.out.print(" " + nextNumber);
number1 = number2;
number2 = nextNumber;
}
}
}
```

OUTPUT:

Enter number up to which Fibonacci series to print:
10
0 1 1 2 3 5 8 13 21 34