Chuỗi Fibonacci trong Java sử dụng chương trình đệ quy và vòng lặp

Chuỗi Fibonacci là gì Java?

A Dòng Fibonacci in Java là một dãy số trong đó số tiếp theo là tổng của hai số trước đó. Hai số đầu tiên của dãy Fibonacci là 0 và 1. Dãy số Fibonacci được sử dụng đáng kể trong nghiên cứu thời gian chạy tính toán của một thuật toán để xác định ước chung lớn nhất của hai số nguyên.

Trong số học, mảng Wythoff là một ma trận vô hạn các số được tạo ra từ dãy Fibonacci.

The Fibonacci sequence: 0, 1, 1, 2, 3, 5, 8, 13, 21, ...

Chương trình dãy Fibonacci trong Java sử dụng vòng lặp For

//Using  For Loop
public class FibonacciExample {
	public static void main(String[] args) 
	{
		// Set it to the number of elements you want in the Fibonacci Series
		 int maxNumber = 10; 
		 int previousNumber = 0;
		 int nextNumber = 1;
	        System.out.print("Fibonacci Series of "+maxNumber+" numbers:");
	        for (int i = 1; i <= maxNumber; ++i)
	        {
	            System.out.print(previousNumber+" ");
	            /* On each iteration, we are assigning second number
	             * to the first number and assigning the sum of last two
	             * numbers to the second number
	             */
 
	      
	            int sum = previousNumber + nextNumber;
	            previousNumber = nextNumber;
	            nextNumber = sum;
	        }
	}
}

Đầu ra:

Fibonacci Series of 10 numbers:0 1 1 2 3 5 8 13 21 34

Logic chương trình:

  • previousNumber được khởi tạo bằng 0 và nextNumber được khởi tạo bằng 1
  • Vòng lặp Fibonacci For lặp đi lặp lại maxNumber
    • Hiển thị số trước đó
    • Tính tổng của số trước và số tiếp theo
    • Cập nhật giá trị mới của previousNumber và nextNumber

Chương trình dãy Fibonacci trong Java sử dụng vòng lặp while

Bạn cũng có thể tạo Java Chuỗi Fibonacci sử dụng While vòng vào Java

//Using  While Loop
public class FibonacciWhileExample {
	public static void main(String[] args) 
	{
		 int maxNumber = 10, previousNumber = 0, nextNumber = 1;
	        System.out.print("Fibonacci Series of "+maxNumber+" numbers:");
 
	        int i=1;
	        while(i <= maxNumber)
	        {
	            System.out.print(previousNumber+" ");
	            int sum = previousNumber + nextNumber;
	            previousNumber = nextNumber;
	            nextNumber = sum;
	            i++;
	        }
 
	}
 
}

Đầu ra:

Fibonacci Series of 10 numbers:0 1 1 2 3 5 8 13 21 34

Sự khác biệt duy nhất trong logic chương trình là việc sử dụng Trong khi lặp lại để in Fibonacci Numbers

Chuỗi Fibonacci dựa trên đầu vào của người dùng

//fibonacci series based on the user input
import java.util.Scanner;
public class FibonacciExample {
 
	public static void main(String[] args) 
	{
	
		 int maxNumber = 0; 
		 int previousNumber = 0;
		 int nextNumber = 1;
		 
		    System.out.println("How many numbers you want in Fibonacci:");
	        Scanner scanner = new Scanner(System.in);
	        maxNumber = scanner.nextInt();
	        System.out.print("Fibonacci Series of "+maxNumber+" numbers:");
 
	        for (int i = 1; i <= maxNumber; ++i)
	        {
	            System.out.print(previousNumber+" ");
	            /* On each iteration, we are assigning second number
	             * to the first number and assigning the sum of last two
	             * numbers to the second number
	             */
 
	      
	            int sum = previousNumber + nextNumber;
	            previousNumber = nextNumber;
	            nextNumber = sum;
	        }
 
	}
 
}

Logic chương trình:
Logic vẫn giống như trước đó. Thay vì mã hóa cứng số lượng phần tử để hiển thị trong Java Fibonacci Series, người dùng được yêu cầu viết số.

Chuỗi Fibonacci sử dụng đệ quy trong Java

Dưới đây là chương trình chuỗi Fibonacci trong Java sử dụng đệ quy:

//Using Recursion
public class FibonacciCalc{
	public static int fibonacciRecursion(int n){
	if(n == 0){
		return 0;
	}
	if(n == 1 || n == 2){
			return 1;
		}
	return fibonacciRecursion(n-2) + fibonacciRecursion(n-1);
	}
    public static void main(String args[]) {
	int maxNumber = 10;
	System.out.print("Fibonacci Series of "+maxNumber+" numbers: ");
	for(int i = 0; i < maxNumber; i++){
			System.out.print(fibonacciRecursion(i) +" ");
		}
	}
}


Đầu ra:

Fibonacci Series of 10 numbers: 0 1 1 2 3 5 8 13 21 34

Logic chương trình:

Hàm đệ quy là hàm có khả năng gọi chính nó.

fibonacciRecursion():

  1. Java Hàm đệ quy Fibonacci lấy một số đầu vào. Kiểm tra 0, 1, 2 và trả về 0, 1, 1 tương ứng vì dãy Fibonacci trong Java bắt đầu bằng 0, 1, 1.
  2. Khi đầu vào n >=3, Hàm sẽ tự gọi đệ quy. Cuộc gọi được thực hiện hai lần. Chúng ta hãy xem dãy Fibonacci trong Java sử dụng ví dụ đệ quy cho đầu vào của 4.
fibonacciRecursion (4)  
	It will recursively call fibonacciRecursion function for values 2 and 3
		fibonacciRecursion (2) \\ call for value 0 and 1
			fibonacciRecursion (0) = 0
			fibonacciRecursion (1) = 1
		fibonacciRecursion (3) \\ It will call for 1 and 2
			fibonacciRecursion (1) = 1
			fibonacciRecursion (2) \\ It will call for 0 and 1
				fibonacciRecursion (0) = 0
				fibonacciRecursion (1) = 1

Bây giờ kết quả được thêm 0+1+1+0+1=3