>  기사  >  백엔드 개발  >  C++에서 주어진 네 숫자로 구성된 n번째 숫자의 자릿수

C++에서 주어진 네 숫자로 구성된 n번째 숫자의 자릿수

王林
王林앞으로
2023-08-29 15:01:05588검색

C++에서 주어진 네 숫자로 구성된 n번째 숫자의 자릿수

주어진 네 자리 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입니다.

Algorithm

  • 번호를 초기화하세요 n.
  • 두 개의 변수를 초기화합니다. 하나는 결과를 저장하고 다른 하나는 계열의 총 숫자 합계를 저장합니다.
  • 반복 변수를 4제곱만큼 증가시키는 루프를 만듭니다.
    • 현재 숫자를 합계 변수에 추가합니다. .
    • 총 합이 n보다 크면 루프를 중단합니다.
    • 다음 숫자 집합은 이전 숫자 집합보다 한 자리 더 많아지므로 결과에 1을 추가합니다.
  • 결과를 반환합니다.

Implementation

다음은 위 알고리즘을 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;
}

输ude

如果上运行述代码,你将得到以下结果。

3

위 내용은 C++에서 주어진 네 숫자로 구성된 n번째 숫자의 자릿수의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제