Fibonacci Sequence Generator in Java: Loops and Recursion
Java Project - Fibonacci Sequence:
Fibonacci Sequence Generator :
Generate the first N numbers of the Fibonacci sequence.
The program generates and displays the first N numbers in the Fibonacci sequence, where each number is the sum of the two preceding ones, starting from 0 and 1.
Input: Number of terms.
Output: First N numbers in the Fibonacci sequence.
Example:
- Input: 7
- Output: 0, 1, 1, 2, 3, 5, 8
Solution 1: Fibonacci Sequence Using Loops
Code:
import java.util.Scanner;
public class FibonacciUsingLoop {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// Taking user input for the number of terms
System.out.print("Enter the number of terms: ");
int n = scanner.nextInt();
// Initialize the first two Fibonacci numbers
int num1 = 0, num2 = 1;
// Display the first N Fibonacci numbers
System.out.print("Fibonacci Sequence: " + num1);
if (n > 1) {
System.out.print(", " + num2);
}
// Generate Fibonacci numbers using a loop
for (int i = 3; i <= n; i++) {
int nextNum = num1 + num2; // The next number is the sum of the previous two
System.out.print(", " + nextNum);
num1 = num2; // Update num1
num2 = nextNum; // Update num2
}
System.out.println(); // Newline for better output formatting
scanner.close(); // Closing the scanner resource
}
}
Output:
Enter the number of terms: 10 Fibonacci Sequence: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34
Explanation :
- Input and Scanner: The program prompts the user to input the number of terms (n) to generate in the Fibonacci sequence.
- Initial Variables: Two variables num1 and num2 are initialized to represent the first two Fibonacci numbers (0 and 1).
- Display First Two Numbers: If the user requests more than one term, the first two Fibonacci numbers are displayed.
- For Loop: The loop iterates from 3 to n, generating the next Fibonacci number by summing the two preceding numbers and printing the result.
- Variable Updates: In each iteration, the previous two numbers are updated to continue generating the sequence.
- Close Scanner: The scanner is closed to free up system resources.
Solution 2: Fibonacci Sequence Using Recursion
Code:
import java.util.Scanner;
public class FibonacciUsingRecursion {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// Taking user input for the number of terms
System.out.print("Enter the number of terms: ");
int n = scanner.nextInt();
System.out.print("Fibonacci Sequence: ");
for (int i = 0; i < n; i++) {
System.out.print(fibonacci(i));
if (i < n - 1) {
System.out.print(", ");
}
}
System.out.println(); // Newline for better output formatting
scanner.close(); // Closing the scanner resource
}
// Recursive method to find the nth Fibonacci number
public static int fibonacci(int n) {
if (n == 0) { // Base case: Fibonacci(0) is 0
return 0;
} else if (n == 1) { // Base case: Fibonacci(1) is 1
return 1;
} else {
return fibonacci(n - 1) + fibonacci(n - 2); // Recursive call
}
}
}
Output:
Enter the number of terms: 7 Fibonacci Sequence: 0, 1, 1, 2, 3, 5, 8
Explanation:
- Input and Scanner: The program prompts the user to input the number of terms (n) to generate in the Fibonacci sequence.
- Recursive Function: The fibonacci() function is a recursive method that calculates the nth Fibonacci number. The base cases are fibonacci(0) = 0 and fibonacci(1) = 1.
- For Loop: The loop iterates from 0 to n-1, calling the recursive function to print each Fibonacci number in sequence.
- Recursion: For any n greater than 1, the function returns the sum of the previous two Fibonacci numbers (fibonacci(n-1) + fibonacci(n-2)).
- Display Sequence: The generated numbers are displayed in the desired format, separated by commas.
- Close Scanner: The scanner is closed to free up system resources.
It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.
https://w3resource.com/projects/java/java-project-fibonacci-sequence-generator.php
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics