여기서 N과 염기 B가 있는 문제를 볼 수 있습니다. 우리의 임무는 앞에 0을 붙이지 않고 B진에서 N자리 숫자의 개수를 세는 것입니다. 따라서 N이 2이고 B가 2라면 00, 01, 10, 11이라는 네 개의 숫자가 있습니다. 따라서 이 부분에는 숫자 중 두 개만 유효합니다. 앞에 0이 붙지 않고 10, 11입니다.
밑이 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); }
위 내용은 가능한 모든 N 숫자 및 기본 B(단, 앞에 0이 있는 숫자는 제외)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!