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

C++でのキース数


このチュートリアルでは、指定された番号がキース数であるかどうかをチェックするプログラムを作成します。 かどうか。

数字nは、その数字を使用して生成されたシーケンスに現れる場合、キース数と呼ばれます。シーケンスには、数値nの桁として最初のn項があり、他の項は前のn項の合計として再帰的に評価されます。

問題を解決するための手順を見てみましょう。

  • 番号nを初期化します。
  • 空のベクトル要素を初期化してシーケンスを保存します。
  • 桁を数え、すべての桁をvecorに追加します。
  • 数字のベクトルを逆にします。
  • next要素と呼ばれる0で変数を初期化します。
  • 次の要素がn未満になるまで繰り返すループを記述します。
    • 最後のn桁を追加して、次の要素を取得します。
    • 次の要素をベクトルに追加します。
  • 次の要素がnに等しい場合はtrueを返し、それ以外の場合はfalseを返します。

コードを見てみましょう。

#include<bits/stdc++.h>
using namespace std;
bool isKeithNumber(int n) {
   vector<int> elements;
   int temp = n, digitsCount = 0;
   while (temp > 0) {
      elements.push_back(temp % 10);
      temp = temp / 10;
      digitsCount++;
   }
   reverse(elements.begin(), elements.end());
   int nextElement = 0, i = digitsCount;
   while (nextElement < n) {
      nextElement = 0;
      for (int j = 1; j <= digitsCount; j++) {
         nextElement += elements[i - j];
      }
      elements.push_back(nextElement);
      i++;
   }
   return nextElement == n;
}
int main() {
   isKeithNumber(43) ? cout << "Yes" << endl : cout << "No" << endl;
   isKeithNumber(14) ? cout << "Yes" << endl : cout << "No" << endl;
   isKeithNumber(197) ? cout << "Yes" << endl : cout << "No" << endl;
   return 0;
}

出力

上記のコードを実行すると、次の結果が得られます。

No
Yes
Yes

結論

チュートリアルに質問がある場合は、コメントセクションにそのことを記載してください。


  1. C++での質素な数

    この問題では、正の整数Nが与えられます。私たちのタスクは、与えられた数が質素な数であるかどうかをチェックするプログラムを作成することです。 不正な番号 −指定された数の素因数分解の桁数よりも厳密に桁数が多い数。 例 − 625、数625の素因数は5 4です。 。 625の桁数は3です。 5 4の桁数 は2です。 3は厳密に2より大きくなります。したがって、625は質素な数です。 最初のいくつかの質素な数は − 125、128、243、256、343、512、625など。 問題を理解するために例を見てみましょう Input: n = 128 Output: Frugal n

  2. C++五胞体数

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