https://www.acmicpc.net/problem/1748
1748번: 수 이어 쓰기 1
첫째 줄에 N(1 ≤ N ≤ 100,000,000)이 주어진다.
www.acmicpc.net
문제
1부터 N까지의 수를 이어서 쓰면 다음과 같이 새로운 하나의 수를 얻을 수 있다.
1234567891011121314151617181920212223...
이렇게 만들어진 새로운 수는 몇 자리 수일까? 이 수의 자릿수를 구하는 프로그램을 작성하시오.
입력
첫째 줄에 N(1 ≤ N ≤ 100,000,000)이 주어진다.
출력
첫째 줄에 새로운 수의 자릿수를 출력한다.
#include <iostream>
using namespace std;
int main()
{
long long N;
cin >> N;
if (N < 10)
cout << N;
if (10<=N && N< 100)
cout << N * 2 - 9;
if (100<=N && N< 1000)
cout << N * 3 - 90 * 1 - 9*2;
if (1000 <= N && N < 10000)
cout << N * 4 -900*1- 90 * 2 - 9 * 3;
if (10000 <= N && N < 100000)
cout << N * 5 -9000*1-900*2- 90 * 3 - 9 * 4;
if (100000 <= N && N < 1000000)
cout << N * 6 -90000 - 9000 * 2 - 900 * 3 - 90 * 4 - 9 * 5;
if (1000000 <= N && N < 10000000)
cout << N * 7 -900000 - 90000*2 - 9000 * 3 - 900 * 4 - 90 * 5 - 9 * 6;
if (10000000 <= N && N < 100000000)
cout << N * 8 - 9000000 - 900000*2 - 90000 * 3 - 9000 * 4 - 900 * 5 - 90 * 6 - 9 * 7;
if (N == 100000000)
cout<< N * 8 - 9000000 - 900000 * 2 - 90000 * 3 - 9000 * 4 - 900 * 5 - 90 * 6 - 9 * 7 + 1;
}
'백준 c++ > (1-2)백준 c++ 알고리즘 기초' 카테고리의 다른 글
백준 15650 N과 M(2) c++ (0) | 2023.01.02 |
---|---|
백준 15649 N과 M c++ (0) | 2023.01.02 |
백준 14500 테트로미노 c++ (0) | 2023.01.02 |
백준 1967 c++ 트리의 지름 (0) | 2022.10.04 |
백준 1167 c++ 트리의 지름 (0) | 2022.10.04 |