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

与えられた数が与えられた番号で表現できるかどうかを確認してください。 C++の任意の基数の桁数


数nと桁数dがあるとします。数値nが2から32までの任意の基数でd桁の数値として表現できるかどうかを確認する必要があります。数値nが8で、d =4であるとすると、これは2進数で1000として表現できます。ここで、dは4です。 。

アイデアは、2から32まですべてのベースを1つずつチェックすることです。ベースをチェックするためにこれらの手順に従うことができます。

  • 数値が基数より小さく、桁が1の場合、trueを返します
  • 桁が1を超え、数値が基数を超える場合は、num / baseを実行して数値から最後の桁を削除し、桁数を減らしてから、これを繰り返し繰り返し実行します。
  • それ以外の場合はfalseを返します。

#include <iostream>
using namespace std;
bool isRepresentedInDDigits(int num, int d, int base) {
   if (d==1 && num < base)
      return true;
   if (d > 1 && num >= base)
      return isRepresentedInDDigits(num/base, --d, base);
      return false;
}
bool checkNumber(int num, int d) {
   // Check for all bases one by one
   for (int base=2; base<=32; base++)
      if (isRepresentedInDDigits(num, d, base))
         return true;
         return false;
}
int main() {
   int num = 8;
   int dig = 2;
   if(checkNumber(num, dig))
      cout << "Can be represented";
   else
      cout << "Can not be represented";
}

出力

Can be represented

  1. 数値がC++で2つの三角数の合計として表現できるかどうかを確認します

    このセクションでは、1つの数を2つの三角数の合計として表現できるかどうかを確認します。三角数は以下のようになります- 例から、1、3、6、10はいくつかの三角数であることがわかります。数N(たとえば16)を2つの三角数(6、10)の合計として表す必要があります。 アプローチは非常に簡単です。 N未満のすべての三角数を取得する必要があります。これらの値からセットを作成します。ここで、集合からXと言う数を取り、N – Xが集合に存在するかどうかを確認する必要があります。そうすると、Xは2つの三角数の合計として表すことができます。 例 #include <iostream> #

  2. 指定された数値の桁を合計するC++プログラム

    これは、C++言語で桁の合計を計算する例です。 例 #include<iostream> using namespace std; int main() {    int x, s = 0;    cout << "Enter the number : ";    cin >> x;    while (x != 0) {       s = s + x % 10;       x = x / 10;