메모리: 14144 KB, 시간: 152 ms
구현, 수학
2024년 12월 24일 16:56:32
1부터 N까지의 수를 이어서 쓰면 다음과 같이 새로운 하나의 수를 얻을 수 있다.
1234567891011121314151617181920212223...
이렇게 만들어진 새로운 수는 몇 자리 수일까? 이 수의 자릿수를 구하는 프로그램을 작성하시오.
첫째 줄에 N(1 ≤ N ≤ 100,000,000)이 주어진다.
첫째 줄에 새로운 수의 자릿수를 출력한다.
풀이
1의 자리 수는 9개
10의 자리 수는 90개
100의 자리 수는 900개다
만약 목표 수가 1024라면
9 * 1
90 * 2
900 * 3에
1000부터 1024까지 * 4를 더해주면 된다.
코드
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int x = Integer.parseInt(br.readLine());
int count = 0;
int i;
int mul = 9;
int ad = 1;
for(i=10;i<=x;i *= 10){
count += mul * ad;
mul *= 10;
ad++;
}
i /= 10;
for(;i<=x;i++){
count += ad;
}
System.out.println(count);
}
}
'코딩 테스트 연습 > 백준' 카테고리의 다른 글
백준 1759번 암호 만들기 (java) (1) | 2024.12.28 |
---|---|
백준 14501번 퇴사 (java) (0) | 2024.12.27 |
백준 6064번 카잉 달력 (java) (2) | 2024.12.20 |
백준 14500번 테트로미노 (java) (0) | 2024.12.19 |
백준 1107번 리모컨 (java) (3) | 2024.12.18 |