Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

특수 숫자의 총 자릿수를 찾는 C++ 코드

<시간/>

정수 k가 주어졌다고 가정합니다. 그 숫자의 모든 자릿수가 같을 때 우리는 숫자를 특수 숫자라고 부릅니다. 예를 들어 1, 11, 1111은 특수 숫자입니다. 1, 11, 111, 1111, 2, 22, 222, 2222, 3, 33, 333, 3333 등의 순서로 특수 번호를 계산합니다. 우리는 k까지의 특수 숫자에 있는 총 자릿수를 찾아야 합니다. k 값은 10000보다 크지 않습니다.

따라서 입력이 k =9999와 같으면 출력은 90이 됩니다.

단계

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

s := convert k to string
Define an array v of size: := {0, 1, 3, 6, 10}
print(((s[0] - '0') - 1) * 10 + v[length of s])

예시

이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

#include <bits/stdc++.h>
using namespace std;
#define N 100
void solve(int k) {
   string s = to_string(k);
   int v[] = {0, 1, 3, 6, 10};
   cout<< ((s[0] - '0') - 1) * 10 + v[s.length()] << endl;
}
int main() {
   int k = 9999;
   solve(k);
   return 0;
}

입력

9999

출력

90