Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Di bawah asas yang diberikan, terjemah nombor Pandigital dalam C++ ke dalam bahasa Cina

Di bawah asas yang diberikan, terjemah nombor Pandigital dalam C++ ke dalam bahasa Cina

WBOY
WBOYke hadapan
2023-08-30 08:01:101162semak imbas

Di bawah asas yang diberikan, terjemah nombor Pandigital dalam C++ ke dalam bahasa Cina

Nombor yang mengandungi semua digit dari 0 hingga asas B dipanggil nombor digit penuh dalam asas itu. Walau bagaimanapun, sesetengah nombor mempunyai digit dari 1 hingga 9 dan dipanggil nombor digit penuh bebas sifar. Beberapa contoh nombor semua digit termasuk 0123456789, 0789564312, dsb.

Dalam tutorial ini kita akan membincangkan masalah di mana kita diberi nombor dan asas dan kita perlu menyemak sama ada nombor itu adalah nombor berangka sepenuhnya dalam pangkalan yang diberikan seperti −

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.

Pendekatan untuk Mencari Penyelesaian

Untuk menyelesaikan masalah ini, kami akan menggunakan Set dan masukkan setiap digit dalam set kerana kami perlu menyimpan nilai unik.

  • Melintasi rentetan, mengambil setiap aksara pada satu masa.

  • Kemudian periksa sama ada elemen itu adalah integer atau huruf. saiz set bersamaan dengan asas.

  • Contoh

  • C++ Kod untuk Pendekatan Di Atas

     
    #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;
    }
  • Output
  • YES

    Kesimpulan

  • Dalam tutorial ini, kami membincangkan nombor asas. Kita perlu mengetahui sama ada nombor itu adalah berangka sepenuhnya. Kami membincangkan cara mudah untuk menyelesaikan masalah ini dengan memasukkan nilai ke dalam set dan menyemak saiznya terhadap kardinaliti. Kami juga membincangkan program C++ untuk masalah ini, yang boleh kami lakukan menggunakan bahasa pengaturcaraan seperti C, Java, Python, dll. Semoga tutorial ini membantu anda.

Atas ialah kandungan terperinci Di bawah asas yang diberikan, terjemah nombor Pandigital dalam C++ ke dalam bahasa Cina. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam