一.题目描述
输入B和N,找出一个数字A使得A的N次方最接近B;
二.思路
A的N次方有小于等于大于B的,这个A一定介于大于和小于的之间,再比较前后与B的绝对值之差
三.代码
#include<iostream>
#include<vector>
#include<cmath>
#include<iomanip>
using namespace std;
int main()
{
vector<int>a;
vector<int>b;
double c,d,cha1,cha2;
int i,j;
for(;;)
{
cin>>c;
cin>>d;
if(c==0 && d==0)
break;
else
{
a.push_back(c);
a.push_back(d);
for(i=1;;i++)
{
if(pow(i,d)>=c)
{
cha1=pow(i,d)-c;
cha2=c-pow(i-1,d);
if(cha1>cha2)
{
b.push_back(i-1);
}
else
{
b.push_back(i);
}
break;
}
}
}
}
for(j=0;j<b.size();j++)
{
cout<<b[j]<<endl;
}
return 0;
}
四.感受
这道题没什么技术含量,必须过