您的位置:首页 > 其它

ZOJ Problem Set - 2818 Root of the Problem

2015-01-25 19:03 232 查看
Root of the Problem

Time Limit: 2 Seconds Memory Limit: 65536 KB

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.
Example Input:Example Output:
4 3

5 3

27 3

750 5

1000 5

2000 5

3000 5

1000000 5

0 0
1

2

3

4

4

4

5

16
Source: Mid-Central USA 2006

分析:

水题。

题意:

输入b和n,要求输出a^n-b绝对值最大的a(a为整数) 。

直接遍历a的值找到最接近的就行。指数的反函数是对数,所以很快就能确定a的值。

ac代码:

#include <iostream>

#include<cstdio>

#include<cmath>

using namespace std;

int main()

{

int n,b,i;

while(scanf("%d%d",&b,&n)&&b&&n)

{

for(i=1;;)

{

if(pow(i,n)<b)

i++;

else break;

}

if(pow(i,n)-b>b-pow(i-1,n))

printf("%d\n",i-1);

else printf("%d\n",i);

}

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: