백준 c++/(1-2)백준 c++ 알고리즘 기초

백준 1748 수 이어 쓰기 1 c++

현구구 2023. 1. 2. 13:44

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