ここでは、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)
Begin total := B<sup>N</sup> with_zero := B<sup>N-1</sup> return BN – B<sup>N-1</sup> End
#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); }
Number of values: 28672
以上が考えられるすべての N 桁と基数 B (先頭にゼロのある数字は除く)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。