반응형
[문과 코린이의 IT 기록장] C++ 백준 문제풀이[BF] - 수 이어쓰기 1 (1748)
[ 문제 ]
1부터 N까지의 수를 이어서 쓰면 다음과 같이 새로운 하나의 수를 얻을 수 있다.
1234567891011121314151617181920212223...
이렇게 만들어진 새로운 수는 몇 자리 수일까? 이 수의 자릿수를 구하는 프로그램을 작성하시오.
[ 입력 ]
첫째 줄에 N(1 ≤ N ≤ 100,000,000)이 주어진다.
[ 출력 ]
첫째 줄에 새로운 수의 자릿수를 출력한다.
[ 코드 ]
#include<iostream>
#include<algorithm>
using namespace std;
int main() {
int N;
cin >> N;
long long result = 0;
for (int start = 1, len = 1; start <= N; start *= 10, len++)
{
int end = start * 10 - 1;
if (end > N)
{
end = N;
}
result += (long long)(end - start + 1) * len;
}
cout << result << '\n';
return 0;
}
반응형
'문과 코린이의, [C. C++] 기록 > C++ 백준 문제풀이' 카테고리의 다른 글
[문과 코린이의 IT 기록장] C++ 백준 문제풀이[BF] - N과 M (1) (15649) (0) | 2021.08.14 |
---|---|
[문과 코린이의 IT 기록장] C++ 백준 문제풀이[BF] - 1,2,3 더하기 (9095) (0) | 2021.08.14 |
[문과 코린이의 IT 기록장] C++ 백준 문제풀이[BF] - 카잉 달력 (6064) (0) | 2021.08.10 |
[문과 코린이의 IT 기록장] C++ 백준 문제풀이[BF] - 테트로미노 (14500) (0) | 2021.08.10 |
[문과 코린이의 IT 기록장] C++ 백준 문제풀이 - 리모컨 (1107) (0) | 2021.08.08 |