https://www.acmicpc.net/problem/1748

 

1748번: 수 이어 쓰기 1

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

www.acmicpc.net

import java.io.BufferedReader;
import java.io.InputStreamReader;

public class Main {

	public static void main(String[] args) throws Exception {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		int N = Integer.parseInt(br.readLine());
		int answer = 0;
		
		/*
		 * 1 ~ 9			: 1
		 * 10 ~ 99			: 2
		 * 100 ~ 999			: 3
		 * ...
		 * 10000000 ~ 99999999		: 8
		 * n ~ end(end = n * 10 - 1)	: len
		 * */
         
		for(int len = 1, n = 1; n <= N; len++, n*=10) {
			int end = n * 10 - 1;
			
			if(end > N) {
				end = N;
			}
			
			answer += (end - n + 1) * len;
		}
		System.out.println(answer);
	}
}

+ Recent posts