ホームページ >バックエンド開発 >C++ >C++ では、指定された 4 つの数値で構成される n 番目の数値の桁数

C++ では、指定された 4 つの数値で構成される n 番目の数値の桁数

王林
王林転載
2023-08-29 15:01:05609ブラウズ

C++ では、指定された 4 つの数値で構成される n 番目の数値の桁数

与えられた 4 つの数字 1、2、3、4 からなる n 番目の数値の桁数を見つける必要があります。

上記の 4 つの系列桁は次のとおりです

1、2、3、4、11、12、13、14、21、22、23、24...

桁数を見つける必要があります上記のシリーズの n 番目の番号。パターンを注意深く観察すると、次の点がわかります。

  • 数字 1 の数字が 4 つあります。

  • 数字は 16 個あります。数字 2.

  • パターンは 4 のべき乗として続きます。

例を見てみましょう

入力

7

出力

2

シリーズの 7 番目の数値は 13 で、その桁数は 2 です。

アルゴリズム

  • 数値 n を初期化します。
  • 2 つの変数を初期化して、1 つは結果を保存し、もう 1 つは系列内の数値の合計を保存します。
  • 次のループを作成します。反復変数を 4 の累乗で増加します。
    • 現在の数値を合計変数に追加します。
    • 合計が n より大きい場合、ループを終了します。
    • 次の数値セットは前の数値セットよりも 1 桁多くなるため、結果に 1 を追加します。
  • 結果を返します。

実装

以下は、上記のアルゴリズムを C で実装したものです。

#include <bits/stdc++.h>
using namespace std;
int getDigitsCount(int n) {
   int i, result = 1, sum = 0;
   for (i = 4; ; i *= 4) {
      sum += i;
      if (sum >= n) {
         break;
      }
      result += 1;
   }
   return result;
}
int main() {
   int n = 57;
   cout << getDigitsCount(n) << endl;
   return 0;
}

出力

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

以上がC++ では、指定された 4 つの数値で構成される n 番目の数値の桁数の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。