Skip to Content
CoursesCSC102แสดงค่าฟีโบนัชชีถึง N

แสดงค่าฟีโบนัชชีถึง N

โจทย์

สร้างลำดับฟีโบนัชชี (Fibonacci sequence) จนถึงค่าสูงสุดที่กำหนด

InputOutput
10 1 1
200 1 1 2 3 5 8 13
340 1 1 2 3 5 8 13 21 34
1000 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
  • เปรียบเสมือนการปลูกต้นไม้ใหม่ในสวน โดยแต่ละต้นมีความสูงเท่ากับผลรวมของความสูงของสองต้นก่อนหน้า
ปรับปรุงล่าสุด