문제:
https://www.acmicpc.net/problem/2033
2033번: 반올림
정수 N이 주어져 있을 때 이 수가 10보다 크면 일의 자리에서 반올림을 하고, 이 결과가 100보다 크면 다시 10의 자리에서 반올림을 하고, 또 이 수가 1000보다 크면 100의 자리에서 반올림을 하고.. (
www.acmicpc.net
import java.util.*;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
double testCase = sc.nextDouble();
double result = testCase;
int count = 0; // 자릿 수 판단 위한 변수
while(testCase >= 10) {
testCase /= 10;
count++;
}
for(int i=1;i<=count;i++) {
result = Math.round(result/Math.pow(10, i))*Math.pow(10, i);
} // 각 자릿수마다 반올림 해주는 과정
System.out.println((long)result);
}
}
while문으로 맨앞이 > 10 일떄까지 반복
count++ ( 자릿수 판단을 위한 변수 )
1..count까지
10 나눠주고 반올림 후 10 곱하기
100 나눠주고 반올림 후 100 곱하기
....
Math.pow(10,count) 나눠주고 반올림 후 Math.pow(10,count)곱하기
(각 자릿수 마다 반올림 해주는 과정)
후 출력
'Java > 백준' 카테고리의 다른 글
[1059] 좋은 구간 (1) | 2022.07.15 |
---|---|
[1526] 금민수 (실패) (1) | 2022.07.12 |
[1978] 소수 찾기 (0) | 2022.07.03 |
[1676] 팩토리얼 0의 개수 (0) | 2022.07.03 |
[2908] 상수 (0) | 2022.07.01 |