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

C ++ Pandigital Number ในฐานที่กำหนด


ตัวเลขที่มีตัวเลขทั้งหมดตั้งแต่ 0 ถึงฐาน B เรียกว่าหมายเลข Pandigital ในฐานนั้น อย่างไรก็ตาม ตัวเลขบางตัวมีตัวเลขตั้งแต่ 1 ถึง 9 และเรียกว่าตัวเลขแบบไม่มีศูนย์ ตัวอย่างของตัวเลขหลักได้แก่ 0123456789, 0789564312 เป็นต้น

ในบทช่วยสอนนี้ เราจะพูดถึงปัญหาที่เราได้รับตัวเลขและฐาน และเราจำเป็นต้องตรวจสอบว่าตัวเลขนั้นเป็น pandigital ในฐานที่กำหนดหรือไม่ ตัวอย่างเช่น −

Input: num = “9651723467380AZ”, base = 10
Output: YES
Explanation: num contains all the digits in the base 10 i.e from 0 to 9, so it is a pandigital number.

Input: num = “130264ABCDE745789”, base = 16
Output: NO
Explanation: num does not contain F(15) which is in the base 16 i.e from 0 to 15, so it is not a pandigital number.

แนวทางในการหาแนวทางแก้ไข

เพื่อแก้ปัญหานี้ เราจะใช้ Set และใส่ตัวเลขแต่ละตัวในชุดเพราะเราต้องเก็บค่าที่ไม่ซ้ำกันไว้

  • ข้ามผ่านสตริงโดยแยกอักขระทีละตัว

  • จากนั้นตรวจสอบว่าองค์ประกอบนั้นเป็นจำนวนเต็มหรือตัวอักษรหรือไม่

  • หากเป็นตัวอักษร ให้เพิ่ม 10 ในตำแหน่งตัวอักษรเพื่อแสดงตัวเลข 2 หลัก

  • เก็บค่าไว้ในชุด

  • หลังจากข้ามไป ให้ตรวจสอบว่าขนาดของชุดเท่ากับฐานหรือไม่

ตัวอย่าง

รหัส C++ สำหรับแนวทางข้างต้น

 
#include<bits/stdc++.h>
using namespace std;
int main(){
    int base = 10;
    char n[] = "9651723467380AZ";
    // Declaring set to store unique values.
    set<int, greater<int> > s;
    // Traversing through the string.
    for (int i = 0; i < strlen(n); i++){
        // Checking if element is Integer.
        if (n[i] >= '0' && n[i] <= '9')
           s.insert(n[i]- '0');
        // Checking if element is alphabet.
        else if (n[i] - 'A' <= base - 11)
           s.insert(n[i] - 'A' + 10) ;
    }
    // Checking if all the digits are present.
    if(s.size()==base)
       cout<< "YES";
    else
        cout<< "NO";
    return 0;
}

ผลลัพธ์

YES

บทสรุป

ในบทช่วยสอนนี้ เราได้พูดถึงปัญหาที่เราได้รับตัวเลขและฐาน เราต้องค้นหาว่าตัวเลขนั้นเป็น pandigital หรือไม่ เราได้พูดคุยถึงแนวทางง่ายๆ ในการแก้ปัญหานี้โดยการแทรกค่าในชุดและตรวจสอบขนาดด้วยฐาน เรายังพูดถึงโปรแกรม C++ สำหรับปัญหานี้ ซึ่งเราสามารถทำได้ด้วยภาษาโปรแกรม เช่น C, Java, Python เป็นต้น เราหวังว่าคุณจะพบว่าบทช่วยสอนนี้มีประโยชน์