여기서 우리는 하나의 문제를 볼 것입니다. 우리는 N과 밑수 B가 있습니다. 우리의 임무는 선행 0 없이 밑수 B의 모든 N 자리 숫자를 계산하는 것입니다. 따라서 N이 2이고 B가 2인 경우 4개의 숫자 00, 01, 10, 11이 있습니다. 따라서 이 섹션에서는 그 중 2개만 유효합니다. 이것은 10, 11이며 선행 0이 없습니다.
밑수가 B이면 0에서 B까지 – 1개의 다른 숫자가 있습니다. 그래서 B N 여러 N 자리 값을 생성할 수 있습니다(선행 0 포함). 무시하면 첫 번째 숫자는 0m입니다. B N-1 숫자. 따라서 선행 0이 없는 총 N 자리 숫자는 B N 입니다. – B N-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