POJ 3100 Root of the Problem (내 수제의 길 - A^N을 취하여 B에 가장 가까운 A)
Time Limit: 1000MS
Memory Limit: 65536K
Total Submissions: 10067
Accepted: 5372
Description
Given positive integers B and N, find an integer A such that AN is as close as possible to B. (The result A is an approximation to the Nth root of B.) Note that AN may be less than, equal to, or greater than B.
Input
The input consists of one or more pairs of values for B and N. Each pair appears on a single line, delimited by a single space. A line specifying the value zero for both B and N marks the end of the input. The value of B will be in the range 1 to 1,000,000 (inclusive), and the value of N will be in the range 1 to 9 (inclusive).
Output
For each pair B and N in the input, output A as defined above on a line by itself.
Sample Input
4 3
5 3
27 3
750 5
1000 5
2000 5
3000 5
1000000 5
0 0
Sample Output
1
2
3
4
4
4
5
16
Source
Mid-Central USA 2006
두 개의 숫자 B와 N을 입력합니다.A^N이 B에 가장 가까워질 수 있도록 A를 찾으라고 요구합니다.
처음에는 폭력이 생각났지만, 생각해 보면 아마도 이 문제를 다른 방식으로 풀 수 있을 것이다.math를 충분히 이용하다.h의 pow(), 먼저 B에 n차방을 열면 pow(b,1.0/n)를 사용한다.값right를 얻어서 각각 이 값에 대해 하이와 하이를 따서 파워(high, n), 파워(low, n)를 계산하고 이 두 값 중 가장 작은 것을 비교하는 것이 답이다.
참고 사항:
1) B를 개방할 때는 부동 소수점 유형의 값을 사용합니다.
2) n=1 또는 b=1일 때 b를 직접 출력하면 최적화된 셈이다.
코드(1AC):
#include <cstdio>
#include <cstdlib>
#include <cmath>
int main(void){
int min, tmp;
int n, b;
float right;
int low, high;
while (scanf("%d%d", &b, &n), n != 0 || b != 0){
if (n == 1 || b == 1){
printf("%d
", b);
continue;
}
right = pow(b, 1.0 / n);
low = (int)right;
high = (int)(right + 0.9999);
min = b - pow(low, n);
tmp = pow(high, n) - b;
if (tmp < min){
printf("%d
", high);
}
else{
printf("%d
", low);
}
}
return 0;
}
코드(1AC):
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
cocos2d Lua 학습(一)ios에서 루아 함수 호출 및 전참 방법 lua 코드: 출력 결과: lua 호출 C++ 방법: add 함수: lua 코드: 출력 결과: 함수를 호출합니다. 함수를 호출하려면 다음 협의를 따르십시오. 우선, 호출할 함...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.