여기서 우리는 하나의 문제를 볼 것입니다. 우리는 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