Description:
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 |
输入两个数 ,若 全为零 则 结束程序,
第一个数 为 目标书B,第二个数 为 指数N,求 一个底数X,使X的N次方 离着 B最近。
思路,从1 开始找,用条件 fabs(pow(i,n)-b)<fabs(pow(i-1,n)-b) && fabs(pow(i,n)-b)<fabs(pow(i+1,n)-b) 来约束,求 出这个数。
Code:
#if 1 // 20
#include<bits/stdc++.h>
using namespace std;
int main()
{
int b,n;
cin>>b>>n;
while(b!=0&&n!=0)
{
for(int i=1;;i++)
{
if(fabs(pow(i,n)-b)<fabs(pow(i-1,n)-b)&&fabs(pow(i,n)-b)<fabs(pow(i+1,n)-b))
{
cout<<i<<endl; break;
}
}
cin>>b>>n;
}
}
#include<bits/stdc++.h>
using namespace std;
int main()
{
int b,n;
cin>>b>>n;
while(b!=0&&n!=0)
{
for(int i=1;;i++)
{
if(fabs(pow(i,n)-b)<fabs(pow(i-1,n)-b)&&fabs(pow(i,n)-b)<fabs(pow(i+1,n)-b))
{
cout<<i<<endl; break;
}
}
cin>>b>>n;
}
}
#endif
注意的问题, 刚开始写,没有加上 fabs 绝对值函数 来约束 条件。。。。。。。