有沒有不帶前導零的所有 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
廣告
資料結構
網路化
RDBMS
作業系統
Java
iOS
HTML
CSS
安卓
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP