Buzz Number คืออะไร?
Buzz Number คือจำนวนเต็มบวกที่ตรงตามเงื่อนไขอย่างน้อยหนึ่งข้อจากสองข้อต่อไปนี้:
- ลงท้ายด้วยเลข 7 เช่น 7, 17, 27, 657, 1007
- หารด้วย 7 ลงตัว เช่น 7, 14, 21, 49, 63, 70
หมายเหตุ: เลข 7 ตรงตามเงื่อนไขทั้งสองข้อ
ขั้นตอนการตรวจสอบ
- รับค่าจำนวนเต็มบวก n
- ตรวจสอบเงื่อนไข:
n % 10 == 7→ ลงท้ายด้วย 7n % 7 == 0→ หาร 7 ลงตัว
- ถ้าเงื่อนไขใดเงื่อนไขหนึ่งเป็นจริง → เป็น Buzz Number
- ถ้าเงื่อนไขทั้งสองเป็นเท็จ → ไม่ใช่ Buzz Number
ตัวอย่างโค้ด C++
#include <iostream>
using namespace std;
bool isBuzz(int num) {
return (num % 10 == 7 || num % 7 == 0);
}
int main() {
int testCases[] = {49, 29, 67, 7, 14, 17, 20};
int n = sizeof(testCases) / sizeof(testCases[0]);
for (int i = 0; i < n; i++) {
int num = testCases[i];
if (isBuzz(num))
cout << num << " is a Buzz Number\n";
else
cout << num << " is not a Buzz Number\n";
}
return 0;
}
ผลลัพธ์ตัวอย่าง
49 is a Buzz Number 29 is not a Buzz Number 67 is a Buzz Number 7 is a Buzz Number 14 is a Buzz Number 17 is a Buzz Number 20 is not a Buzz Number
ตาราง Buzz Numbers แรกๆ (1-100)
7, 14, 17, 21, 27, 28, 35, 37, 42, 47, 49, 56, 57, 63, 67, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 84, 87, 91, 97, 98
ความซับซ้อนของอัลกอริทึม
- เวลา: O(1) - ตรวจสอบได้ในเวลาคงที่
- พื้นที่: O(1) - ใช้หน่วยความจำคงที่
ประยุกต์ใช้
แนวคิด Buzz Number มักใช้ในเกม FizzBuzz ที่นิยมในการสัมภาษณ์เขียนโปรแกรม โดยรวมกับ Fizz Number (หาร 3 ลงตัว) เพื่อสร้างกติกาการนับเลขที่น่าสนใจ