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

โปรแกรม C++ เช็คว่าเลขใดเป็นเลขนำโชค (เลขต่างกัน)


ให้ด้วยตัวเลขและภารกิจคือตรวจสอบว่าตัวเลขที่ป้อนเป็นเลขนำโชคหรือไม่และแสดงผล

เลขนำโชคคืออะไร

เลขนำโชค คือ ตัวเลขที่แต่ละหลักและทุกหลักแตกต่างกัน และหากซ้ำกันอย่างน้อย 1 หลักจะไม่ถือเป็นเลขนำโชค

ตัวอย่าง

Input-: n = 1234
Output-: it is a lucky number
Explanation-: As there is no repeating digit in a number n so it is a lucky number
Input-: n = 3434
Output-: it is not a lucky number
Explanation-: In the given number n, 3 and 4 are repeating twice so it is not a lucky number

แนวทางที่เราใช้ในโปรแกรมที่กำหนดมีดังนี้

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

อัลกอริทึม

Start
Step1-> declare function to check whether a given number is lucky or not
   bool check_lucky(int size)
   declare bool arr[10]
   Loop For int i=0 and i<10 and i++
      Set arr[i] = false
   End
   Loop While(size > 0)
      declare int digit = size % 10
      IF (arr[digit])
         return false
      End
      set arr[digit] = true
      Set size = size/10
   End
   return true
Step 2-> In main()
   Declare int arr[] = {0,34,2345,1249,1232}
   calculate int size = sizeof(arr)/sizeof(arr[0])
   Loop For int i=0 and i<size and i++
      check_lucky(arr[i])?
      print  is Lucky : print is not Lucky
   End
Stop

ตัวอย่าง

#include<iostream>
using namespace std;
//return true if a number if 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<size; i++)
        check_lucky(arr[i])? cout << arr[i] << " is Lucky \n": cout << arr[i] << " is not Lucky \n";
    return 0;
}

ผลลัพธ์

19 is Lucky
34 is Lucky
2345 is Lucky
1249 is Lucky
1232 is not Lucky