Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

โปรแกรม C++ ตรวจสอบว่าเลขเป็น Lucky Number (เลขทุกหลักต่างกัน) หรือไม่

กำหนดตัวเลข และงานคือตรวจสอบว่าเลขที่รับเข้ามาเป็น 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