주어진 네 자리 1, 2, 3, 4로 구성된 n번째 숫자에서 자릿수를 구해야 합니다.
위 네 자리 숫자의 계열은 다음과 같습니다
1, 2, 3, 4, 11, 12, 13, 14, 21, 22, 23, 24...
위 계열에서 n번째 숫자의 자릿수를 구해야 합니다. 패턴을 잘 관찰해보면 다음과 같은 점을 발견할 수 있습니다.
숫자 1이 4개 있습니다.
숫자 2가 16개 있습니다.
4의 거듭제곱으로 패턴이 이어집니다. .
예제를 살펴보겠습니다
Input
7
Output
2
열의 7번째 숫자는 13이고 그 안의 자릿수는 2입니다.
다음은 위 알고리즘을 C++에서 구현한 것입니다
#include <bits/stdc++.h> using namespace std; int getDigitsCount(int n) { int i, result = 1, sum = 0; for (i = 4; ; i *= 4) { sum += i; if (sum >= n) { break; } result += 1; } return result; } int main() { int n = 57; cout << getDigitsCount(n) << endl; return 0; }
如果上运行述代码,你将得到以下结果。
3
위 내용은 C++에서 주어진 네 숫자로 구성된 n번째 숫자의 자릿수의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!