Dãy số Fibonacci là một chuỗi các số trong đó mỗi số là tổng của hai số trước đó. Ví dụ: 0, 1, 1, 2, 3, 5, 8, 13, 21, …
Để tìm dãy số Fibonacci trong Java, chúng ta có thể sử dụng vòng lặp hoặc đệ quy.
- Sử dụng vòng lặp:
public static void main(String[] args) {
int n = 10; // số lượng phần tử cần tìm
int a = 0, b = 1, c;
System.out.print(a + " " + b);
for (int i = 2; i < n; i++) {
c = a + b;
System.out.print(" " + c);
a = b;
b = c;
}
}
Trong đoạn code trên, ta khởi tạo hai số đầu tiên là 0 và 1. Sau đó sử dụng vòng lặp for để tính và in ra n số Fibonacci tiếp theo.
- Sử dụng đệ quy:
public static int fibonacci(int n) {
if (n == 0 || n == 1) {
return n;
} else {
return fibonacci(n-1) + fibonacci(n-2);
}
}
public static void main(String[] args) {
int n = 10; // số lượng phần tử cần tìm
for (int i = 0; i < n; i++) {
System.out.print(fibonacci(i) + " ");
}
}
Trong đoạn code trên, ta sử dụng phương thức đệ quy để tính toán số Fibonacci tại vị trí n. Nếu n = 0 hoặc n = 1, ta trả về n. Nếu không, ta sẽ tính số Fibonacci tại vị trí n-1 và n-2, rồi cộng lại với nhau.
Sau đó, trong hàm main, ta sử dụng vòng lặp for để in ra n số Fibonacci đầu tiên.
Dưới đây là đoạn code Java để tìm dãy số Fibonacci từ 1 đến n:
import java.util.Scanner;
public class FibonacciExample {
public static void main(String[] args) {
// Nhập vào số n từ người dùng
Scanner input = new Scanner(System.in);
System.out.print("Nhập vào số n: ");
int n = input.nextInt();
// Tìm dãy Fibonacci từ 1 đến n
int fib1 = 0, fib2 = 1, fib3;
System.out.print("Dãy Fibonacci từ 1 đến " + n + ": ");
System.out.print(fib1 + " " + fib2 + " ");
for (int i = 2; i < n; i++) {
fib3 = fib1 + fib2;
System.out.print(fib3 + " ");
fib1 = fib2;
fib2 = fib3;
}
}
}
Khi chạy chương trình, người dùng sẽ được yêu cầu nhập vào số n
và sau đó chương trình sẽ tìm và in ra dãy Fibonacci từ 1 đến n
. Ví dụ, nếu người dùng nhập vào số 10, chương trình sẽ in ra dãy số Fibonacci từ 1 đến 10 như sau:
Nhập vào số n: 10
Dãy Fibonacci từ 1 đến 10: 0 1 1 2 3 5 8 13 21 34