在這裡,我們將看到一個問題,我們有N和基數B。我們的任務是計算基數為B的N位數,沒有所有前導0的數字的數量。所以如果N是2,B是2,那麼會有四個數字00、01、10、11。所以只有其中兩個數字對這個部分有效。它們是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中文網其他相關文章!