본문 바로가기
Study (etc)/Problem Solving

[BOJ / C++] 1748번 : 수 이어 쓰기 1

by Haren 2023. 1. 3.

문제

1부터 N까지의 수를 이어서 쓰면 다음과 같이 새로운 하나의 수를 얻을 수 있다.

1234567891011121314151617181920212223...

이렇게 만들어진 새로운 수는 몇 자리 수일까? 이 수의 자릿수를 구하는 프로그램을 작성하시오.

입력

첫째 줄에 N(1 ≤ N ≤ 100,000,000)이 주어진다.

출력

첫째 줄에 새로운 수의 자릿수를 출력한다.

Solved.ac 레벨

실버 IV

풀이

#include <bits/stdc++.h>

using namespace std;

int main() {
    ios::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);

    int n;
    int cnt = 0;
    cin >> n;

    if(n < 10){
        cout << n << '\n';
        return 0;
    } 

    for(int i = 1; i <= n; i *= 10){
        cnt += n - i + 1;
    }

    cout << cnt << "\n";

    return 0;
}

 

 

1748번: 수 이어 쓰기 1

첫째 줄에 N(1 ≤ N ≤ 100,000,000)이 주어진다.

www.acmicpc.net