แสดงค่าฟีโบนัชชีถึง N
โจทย์
สร้างลำดับฟีโบนัชชี (Fibonacci sequence) จนถึงค่าสูงสุดที่กำหนด
| Input | Output |
|---|---|
| 1 | 0 1 1 |
| 20 | 0 1 1 2 3 5 8 13 |
| 34 | 0 1 1 2 3 5 8 13 21 34 |
| 100 | 0 1 1 2 3 5 8 13 21 34 55 89 |
โค้ด
import java.util.Scanner;
public class Main {
public static void main (String[] args) {
Scanner scanner = new Scanner(System.in);
int maxNumber = scanner.nextInt();
int a = 0, b = 1, next = a + b;
System.out.print(a + " ");
while (next <= maxNumber) {
System.out.print(next + " ");
next = a + b;
a = b;
b = next;
}
}
}คำอธิบาย
ขั้นตอนที่ 1: การนำเข้าไลบรารี
import java.util.Scanner;- บรรทัดนี้เป็นการนำเข้าไลบรารีที่ชื่อว่า
Scanner Scannerเป็นเครื่องมือที่ช่วยให้เราสามารถรับข้อมูลจากผู้ใช้ได้- เปรียบเสมือนการหยิบเครื่องบันทึกเสียงที่สามารถรับคำสั่งจากเราได้มาเตรียมไว้
ขั้นตอนที่ 2: การสร้างคลาส
public class Main {
// โค้ดอื่นๆ จะอยู่ในนี้
}class Mainคือการสร้างกล่องใหญ่ที่จะเก็บโค้ดทั้งหมดของเรา- คิดเหมือนกับการสร้างห้องทดลองที่ชื่อว่า “Main” ที่เราจะใช้สร้างลำดับฟีโบนัชชี
ขั้นตอนที่ 3: การสร้างเมธอดหลัก
public static void main (String[] args) {
// โค้ดหลักจะอยู่ในนี้
}- นี่คือจุดเริ่มต้นของโปรแกรมของเรา
- เปรียบเสมือนประตูทางเข้าของห้องทดลอง เมื่อเราเปิดโปรแกรม มันจะเริ่มทำงานจากตรงนี้
ขั้นตอนที่ 4: การสร้างตัวรับข้อมูล
Scanner scanner = new Scanner(System.in);- เราสร้างเครื่องมือที่ชื่อว่า
scannerเพื่อรับข้อมูลจากผู้ใช้ - คิดเหมือนกับการเตรียมไมโครโฟนไว้พร้อมรับคำสั่งจากผู้ใช้
ขั้นตอนที่ 5: การรับค่าสูงสุด
int maxNumber = scanner.nextInt();- เราใช้
scannerเพื่ออ่านตัวเลขที่ผู้ใช้พิมพ์เข้ามา - ตัวเลขนี้จะเป็นค่าสูงสุดของลำดับฟีโบนัชชีที่เราจะสร้าง
- เปรียบเสมือนการถามผู้ใช้ว่า “คุณต้องการให้ลำดับฟีโบนัชชีไปถึงเลขไหน?”
ขั้นตอนที่ 6: การเตรียมตัวแปรเริ่มต้น
int a = 0, b = 1, next = a + b;- เราสร้างตัวแปรสามตัว:
a,b, และnext aและbคือสองตัวเลขแรกของลำดับฟีโบนัชชี (0 และ 1)nextคือตัวถัดไปในลำดับ ซึ่งเริ่มต้นด้วยค่า 0 + 1 = 1- เปรียบเสมือนการวางเมล็ดพันธุ์สองเมล็ดแรก (0 และ 1) และเตรียมพื้นที่สำหรับเมล็ดถัดไป
ขั้นตอนที่ 7: การแสดงตัวเลขแรก
System.out.print(a + " ");- เราแสดงค่าของ
a(ซึ่งคือ 0) ออกมาก่อน - เปรียบเสมือนการปลูกต้นไม้ต้นแรกในสวนฟีโบนัชชีของเรา
ขั้นตอนที่ 8: การสร้างและแสดงลำดับ
while (next <= maxNumber) {
System.out.print(next + " ");
next = a + b;
a = b;
b = next;
}- เราใช้ลูป
whileเพื่อทำซ้ำตราบใดที่nextยังไม่เกินค่าmaxNumber - ในแต่ละรอบของลูป:
- เราแสดงค่า
nextออกมา - คำนวณค่า
nextใหม่โดยบวกaกับb - เลื่อนค่า
bไปให้aและค่าnextไปให้b - เปรียบเสมือนการปลูกต้นไม้ใหม่ในสวน โดยแต่ละต้นมีความสูงเท่ากับผลรวมของความสูงของสองต้นก่อนหน้า
ปรับปรุงล่าสุด