กำหนดตัวเลข และงานคือตรวจสอบว่าเลขที่รับเข้ามาเป็น Lucky Number หรือไม่ แล้วแสดงผลลัพธ์
Lucky Number คืออะไร
Lucky Number คือตัวเลขที่ทุกหลักมีค่าต่างกันทั้งหมด หากมีหลักใดหลักหนึ่งซ้ำกัน ตัวเลขนั้นจะไม่ถือเป็น Lucky Number
ตัวอย่าง
Input: n = 1234 Output: it is a lucky number Explanation: ไม่มีหลักซ้ำกัน จึงเป็น lucky number Input: n = 3434 Output: it is not a lucky number Explanation: ในตัวเลข n นี้ 3 และ 4 ซ้ำกัน 2 ครั้ง จึงไม่เป็น lucky number
วิธีการที่ใช้ในโปรแกรม −
- รับตัวเลข n จากผู้ใช้เพื่อตรวจสอบว่าเป็น lucky number หรือไม่
- วนลูปผ่านทุกหลักจนครบทุกหลักของตัวเลข
- ทำเครื่องหมายหลักที่ผ่านมาแล้ว และตรวจสอบว่าพบไปแล้วหรือยัง
- แสดงว่าตัวเลขที่กำหนดเป็น lucky number หรือไม่
อัลกอริทึม
Start
Step 1 → ประกาศฟังก์ชันตรวจสอบว่าเลขเป็น lucky หรือไม่
bool check_lucky(int size)
ประกาศ bool arr[10]
ลูป For int i=0 และ i<10 และ i++
ตั้งค่า arr[i] = false
End
ลูป While(size > 0)
ประกาศ int digit = size % 10
IF (arr[digit])
return false
End
ตั้งค่า arr[digit] = true
ตั้งค่า size = size/10
End
return true
Step 2 → ใน main()
ประกาศ int arr[] = {0,34,2345,1249,1232}
คำนวณ int size = sizeof(arr)/sizeof(arr[0])
ลูป For int i=0 และ i
ตัวอย่างโค้ด
#include <iostream>
using namespace std;
// คืนค่า true ถ้าเลขเป็น lucky
bool check_lucky(int size) {
bool arr[10];
for (int i=0; i<10; i++)
arr[i] = false;
while (size > 0) {
int digit = size % 10;
if (arr[digit])
return false;
arr[digit] = true;
size = size/10;
}
return true;
}
int main() {
int arr[] = {0,34,2345,1249,1232};
int size = sizeof(arr)/sizeof(arr[0]);
for (int i=0; i
ผลลัพธ์
0 is Lucky
34 is Lucky
2345 is Lucky
1249 is Lucky
1232 is not Lucky