有沒有不帶前導零的所有 N 位數和底數 B 的可能數?


我們在這裡來看一個問題,我們有 N 和底數 B。我們的任務是計算所有不帶前導 0 的 N 位底數 B 數。因此,如果 N 為 2,B 為 2,將有四個數字 00、01、10、11。因此,只有兩個對本節有效。這些是 10、11,沒有前導 0。

如果底數是 B,則有 0 到 B – 1 個不同的數字。因此,可以生成 BN 個不同的 N 位值(包括前導 0)。如果我們忽略第一位數字為 0,則會有 BN-1 個數字。因此,沒有前導 0 的所有 N 位數字總數為 BN – BN-1

演算法

countNDigitNum(N, B)

Begin
   total := BN
   with_zero := BN-1
   return BN – BN-1
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

更新於: 31-7 月-2019

163 瀏覽量

開啟你的 職業生涯

完成該課程以獲得認證

開始
廣告
© . All rights reserved.