ホームページ >バックエンド開発 >C++ >考えられるすべての N 桁と基数 B (先頭にゼロのある数字は除く)

考えられるすべての N 桁と基数 B (先頭にゼロのある数字は除く)

王林
王林転載
2023-08-29 21:57:06628ブラウズ

考えられるすべての N 桁と基数 B (先頭にゼロのある数字は除く)

ここでは、N と基数 B がある問題を見ていきます。私たちのタスクは、先頭に 0 を付けずに、基数 B の N 桁の数を数えることです。したがって、N が 2、B が 2 の場合、00、01、10、11 の 4 つの数字が存在します。したがって、この部分では数値のうち 2 つだけが有効です。これらは 10、11 であり、先頭に 0 はありません。

基数が B の場合、0 から B-1 までの異なる数値が存在します。したがって、B^N 個の異なる N 桁の数値 (先頭の 0 を含む) を生成できます。最初の数値 0 を無視すると、B^(N-1) 個の数値が存在します。したがって、先頭の 0 を除いた N 桁の合計数は、B^N - B^(N-1)

Algorithm

countNDigitNum(N, B)

Begin
   total := B<sup>N</sup>
   with_zero := B<sup>N-1</sup>
   return BN &ndash; B<sup>N-1</sup>
End

Example# となります。 # # の中国語訳は次のとおりです:

Example

#include <iostream>
#include <cmath>
using namespace std;
int countNDigitNum(int N, int B) {
   int total = pow(B, N);
   int with_zero = pow(B, N - 1);
   return total - with_zero;
}
int main() {
   int N = 5;
   int B = 8;
   cout << "Number of values: " << countNDigitNum(N, B);
}

Output

Number of values: 28672

以上が考えられるすべての N 桁と基数 B (先頭にゼロのある数字は除く)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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