Heim  >  Artikel  >  Backend-Entwicklung  >  Übersetzen Sie Pandigitalzahlen in C++ unter dem angegebenen Basissystem ins Chinesische

Übersetzen Sie Pandigitalzahlen in C++ unter dem angegebenen Basissystem ins Chinesische

WBOY
WBOYnach vorne
2023-08-30 08:01:101211Durchsuche

Übersetzen Sie Pandigitalzahlen in C++ unter dem angegebenen Basissystem ins Chinesische

Eine Zahl, die alle Ziffern von 0 bis zur Basis B enthält, wird in dieser Basis als vollstellige Zahl bezeichnet. Einige Zahlen haben jedoch Ziffern von 1 bis 9 und werden als nullfreie Vollziffern bezeichnet. Einige Beispiele für reinstellige Nummern sind 0123456789, 0789564312 usw.

In diesem Tutorial besprechen wir ein Problem, bei dem uns eine Zahl und eine Basis gegeben werden und wir prüfen müssen, ob die Zahl eine vollständig numerische Zahl in der gegebenen Basis ist, wie etwa −

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.

Ansatz zur Lösungsfindung

Zur Lösung Um dieses Problem zu lösen, verwenden wir Set und fügen jede Ziffer in den Satz ein, da wir eindeutige Werte speichern müssen oder Alphabet.

  • Wenn es sich um ein Alphabet handelt, addieren Sie 10 zu seiner Position im Alphabet, um eine zweistellige Zahl darzustellen.

  • Speichern Sie die Werte im Satz.

  • Überprüfen Sie nach dem Durchlaufen, ob Die Größe der Menge entspricht der Basis.

  • Beispiel

  • C++-Code für den obigen Ansatz

     
    #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] >= &#39;0&#39; && n[i] <= &#39;9&#39;)
               s.insert(n[i]- &#39;0&#39;);
            // Checking if element is alphabet.
            else if (n[i] - &#39;A&#39; <= base - 11)
               s.insert(n[i] - &#39;A&#39; + 10) ;
        }
        // Checking if all the digits are present.
        if(s.size()==base)
           cout<< "YES";
        else
            cout<< "NO";
        return 0;
    }
  • Ausgabe
YES

Schlussfolgerung

In diesem Tutorial haben wir ein Problem besprochen, bei dem eine Zahl und eine Basis angegeben wurden. Wir müssen herausfinden, ob die Zahl vollständig numerisch ist. Wir haben einen einfachen Weg zur Lösung dieses Problems besprochen, indem wir den Wert in eine Menge einfügen und seine Größe anhand der Kardinalität vergleichen. Wir haben auch das C++-Programm für dieses Problem besprochen, das wir mit Programmiersprachen wie C, Java, Python usw. erstellen können. Ich hoffe, Sie finden dieses Tutorial hilfreich.

Das obige ist der detaillierte Inhalt vonÜbersetzen Sie Pandigitalzahlen in C++ unter dem angegebenen Basissystem ins Chinesische. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen