Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

โปรแกรม Java เช็คว่าเลขใดเป็นเลข Fibonacci?


ต่อไปนี้เป็นโปรแกรม Java เพื่อตรวจสอบว่าตัวเลขที่กำหนดคือ Fibonacci หรือไม่ −

ตัวอย่าง

public class Demo{
   static boolean perfect_square_check(int val){
      int s = (int) Math.sqrt(val);
      return (s*s == val);
   }
   static boolean fibonacci_num_check(int n){
      return perfect_square_check(5*n*n + 4) || perfect_square_check(5*n*n - 4);
   }
   public static void main(String[] args){
      for (int i = 6; i <= 17; i++)
      System.out.println(fibonacci_num_check(i) ? i + " is a Fibonacci number" :
      i + " is a not Fibonacci number");
   }
}

ผลลัพธ์

6 is a not Fibonacci number
7 is a not Fibonacci number
8 is a Fibonacci number
9 is a not Fibonacci number
10 is a not Fibonacci number
11 is a not Fibonacci number
12 is a not Fibonacci number
13 is a Fibonacci number
14 is a not Fibonacci number
15 is a not Fibonacci number
16 is a not Fibonacci number
17 is a not Fibonacci number

คลาสชื่อ Demo กำหนดฟังก์ชันบูลีนแบบคงที่ซึ่งรับค่าจำนวนเต็มเป็นพารามิเตอร์ โดยจะตรวจสอบรากที่สองของค่าและกำหนดให้กับค่าอื่น หากผลคูณของสแควร์รูทคูณด้วยสแควร์รูทเท่ากับค่าที่ส่งไป จะถูกส่งกลับ

ถัดไป มีการกำหนดฟังก์ชันบูลีนสแตติกอื่นที่เรียกใช้ฟังก์ชันก่อนหน้า ในฟังก์ชันหลัก หมายเลขเริ่มต้นและหมายเลขลงท้ายจะถูกทำซ้ำ และข้อความที่เกี่ยวข้องจะถูกพิมพ์ตลอดจนตรวจสอบว่าทุกหมายเลขเป็นหมายเลข Fibonacci หรือไม่