Dòng Fibonacci là gì?
Trong chuỗi Fibonacci, 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.
Các số Fibonacci được sử dụng đáng kể trong nghiên cứu thời gian chạy tính toán của thuật toán để xác định ước chung lớn nhất của hai số nguyên.
The Fibonacci sequence: 0, 1, 1, 2, 3, 5, 8, 13, 21,…
Mã Java sử dụng For Loop
// Sử dụng For Looplớp công khai FibonacciExample {public static void main (String [] args){// Đặt nó thành số phần tử bạn muốn trong Chuỗi Fibonacciint maxNumber = 10;int beforeNumber = 0;int nextNumber = 1;System.out.print ("Chuỗi Fibonacci của" + maxNumber + "số:");for (int i = 1; i <= maxNumber; ++ i){System.out.print (Số trước + "");/ * Trên mỗi lần lặp, chúng tôi đang gán số thứ hai* cho số đầu tiên và gán tổng của hai số cuối cùng* số đến số thứ hai* /int sum = beforeNumber + nextNumber;beforeNumber = nextNumber;nextNumber = sum;}}}Đầu ra:
Fibonacci Series of 10 numbers:0 1 1 2 3 5 8 13 21 34Logic chương trình:
- beforeNumber được khởi tạo thành 0 và nextNumber được khởi tạo thành 1
- For Loop lặp lại qua
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 các giá trị mới của beforeNumber và nextNumber
Mã Java sử dụng While Loop
Bạn cũng có thể tạo Chuỗi Fibonacci bằng cách sử dụng
While
vòng lặp trong Java.
// Sử dụng Vòng lặp Trong khilớp công khai FibonacciWhileExample {public static void main (String [] args){int maxNumber = 10, beforeNumber = 0, nextNumber = 1;System.out.print ("Chuỗi Fibonacci của" + maxNumber + "số:");int i = 1;trong khi (i <= maxNumber){System.out.print (Số trước + "");int sum = beforeNumber + nextNumber;beforeNumber = 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à sử dụng Vòng lặp WHILE để in Số Fibonacci
Chuỗi Fibonacci dựa trên đầu vào của người dùng
// chuỗi fibonacci dựa trên đầu vào của người dùngnhập java.util.Scanner;lớp công khai FibonacciExample {public static void main (String [] args){int maxNumber = 0;int beforeNumber = 0;int nextNumber = 1;System.out.println ("Bạn muốn có bao nhiêu số trong Fibonacci:");Máy quét Scanner = Máy quét mới (System.in);maxNumber = scanner.nextInt ();System.out.print ("Chuỗi Fibonacci của" + maxNumber + "số:");for (int i = 1; i <= maxNumber; ++ i){System.out.print (Số trước + "");/ * Trên mỗi lần lặp, chúng tôi đang gán số thứ hai* cho số đầu tiên và gán tổng của hai số cuối cùng* số đến số thứ hai* /int sum = beforeNumber + nextNumber;beforeNumber = nextNumber;nextNumber = sum;}}}Logic chương trình:
Logic là giống như trước đó. Thay vì mã hóa cứng số phần tử để hiển thị trong Chuỗi Fibonacci, người dùng được yêu cầu viết số.
Mã Java sử dụng Đệ quy
// Sử dụng đệ quylớp công khai FibonacciCalc {public static int fibonacciRecursion (int n) {nếu (n == 0) {trả về 0;}nếu (n == 1 || n == 2) {trả về 1;}trả về fibonacciRecursion (n-2) + fibonacciRecursion (n-1);}public static void main (String args []) {int maxNumber = 10;System.out.print ("Chuỗi Fibonacci của" + maxNumber + "số:");for (int i = 0; iĐầu ra: Fibonacci Series of 10 numbers: 0 1 1 2 3 5 8 13 21 34Logic chương trình:Một hàm đệ quy là một hàm có khả năng gọi chính nó.
fibonacciRecursion ():
- 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 bắt đầu bằng 0, 1, 1.
- Khi đầu vào n> = 3, hàm sẽ gọi chính nó một cách đệ quy. Cuộc gọi được thực hiện hai lần. Hãy xem ví dụ cho đầu vào của 4.
fibonacciRecursion (4)It will recursively call fibonacciRecursion function for values 2 and 3fibonacciRecursion (2) \\ call for value 0 and 1fibonacciRecursion (0) = 0fibonacciRecursion (1) = 1fibonacciRecursion (3) \\ It will call for 1 and 2fibonacciRecursion (1) = 1fibonacciRecursion (2) \\ It will call for 0 and 1fibonacciRecursion (0) = 0fibonacciRecursion (1) = 1Bây giờ kết quả được thêm 0 + 1 + 1 + 0 + 1 = 3