C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

特定の基数のC++パンデジタル数


0から基数Bまでのすべての桁を含む数値は、その基数のパンデジタル数と呼ばれます。ただし、一部の数値は1から9までの数字を持ち、ゼロレスパンデジタル数と呼ばれます。パンデジタル数の例としては、0123456789、0789564312などがあります。

このチュートリアルでは、数値と底が与えられている問題について説明します。たとえば、-

のように、その数が与えられた底でパンデジタルであるかどうかを確認する必要があります。
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

結論

このチュートリアルでは、数とベースが与えられる問題について説明しました。番号がパンデジタルであるかどうかを確認する必要があります。セットに値を挿入し、そのサイズをベースでチェックすることにより、この問題を解決するための簡単なアプローチについて説明しました。また、C、Java、Pythonなどのプログラミング言語で実行できるこの問題のC++プログラムについても説明しました。このチュートリアルがお役に立てば幸いです。


  1. C ++を使用して、指定された番号の繰り返し桁を削除します

    この記事では、番号nが与えられており、指定された番号の繰り返し桁を削除する必要があります。 Input: x = 12224 Output: 124 Input: x = 124422 Output: 1242 Input: x = 11332 Output: 132 与えられた問題では、すべての数字を調べて、繰り返される数字を削除します。 解決策を見つけるためのアプローチ 与えられたアプローチでは、nのすべての桁を右から左に調べます。 nのmodを10で取り、次にnを10で除算することにより、nの桁を調べます。現在の桁はnmod10です。前の桁で確認します。数字が等しい場合は、ここで

  2. C++五胞体数

    五胞体数は、パスカルの三角形の5番目の数として表されます。ご存知のように、これは5番目の数字です。つまり、パスカルの三角形に少なくとも5つの数字が必要です。したがって、このシリーズの最初の数字は 1 4 6 4 1から始まります。 パスカルの三角形の4行目。したがって、このチュートリアルでは、たとえば、n番目の五胞体数を見つける必要があります Input : 1 Output : 1 Input : 4 Output : 35 次の図から出力を確認できます- この問題については、可能な限り、これは一種のシリーズであるため、ソリューションでこのシリーズのパターンを見つけようと