728x90
https://www.acmicpc.net/problem/4619
루트
한국어
시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 | 128 MB | 1664 | 979 | 857 | 59.431% |
문제
양의 정수 B와 N이 주어졌을 때, B에 가장 가까운 AN의 정수 A를 찾는 프로그램을 작성하시오. AN은 B보다 작거나, 크거나, 같다.
입력
입력은 여러 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있고, B와 N이 주어진다. (1 ≤ B ≤ 1,000,000, 1 ≤ N ≤ 9) 입력의 마지막 줄에는 0이 2개 주어진다.
출력
각 테스트 케이스에 해당하는 A를 출력한다.
예제 입력 1 복사
4 3
5 3
27 3
750 5
1000 5
2000 5
3000 5
1000000 5
0 0
예제 출력 1 복사
1
2
3
4
4
4
5
16
풀이 : 기준 숫자 b를 기준으로 이전 수, 다음 수를 left, right 에 저장하여 비교한 후 b와 더 가까운 수를 출력
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
// 백준 4619. 루트
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
while (true){
StringTokenizer st = new StringTokenizer(br.readLine());
int b = Integer.parseInt(st.nextToken());
int n = Integer.parseInt(st.nextToken());
if(b==0 && n==0) break;
int left = 0;
int right = 0;
for(int i=1; i<=b; i++){
if(b <= Math.pow(i,n)){
right = i;
left = right-1;
System.out.println((b-Math.pow(left,n)<Math.pow(right,n)-b)? left:right);
break;
}
}
}
}
}
728x90
'알고리즘 문제풀이 > Beakjoon' 카테고리의 다른 글
백준 5220. Error Detection (JAVA) (0) | 2023.03.30 |
---|---|
백준 5086. 배수와 약수 (JAVA) (0) | 2023.03.20 |
백준 5691. 평균 중앙값 문제 (JAVA) (0) | 2023.03.16 |
백준 3460. 이진수 (JAVA) (0) | 2023.03.01 |
백준 4909. Judging Olympia (JAVA) (0) | 2023.02.28 |