ACM
来源:互联网 发布:论述题生成软件 编辑:程序博客网 时间:2024/06/17 13:46
题目:输入两个数A,B,当A的N次方(A的N次方可以大于小于等于B)最接近B时输出N。
解题思路:利用pow函数来求A的N次方,然后通过比较fabs((pow(i,N))-B)与fabs(pow(i+1,N)-B)和(fabs(pow(i,N)-B))与fabs(pow(i-1,N)-B)来判断当N为多少时A的N次方最接近B。
细节处理:利用pow函数处理更加方便。
代码:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int B,N,i,j=0;
int a[1000];
while(cin>>B>>N)
{ if(B==0&&N==0)
break;
for(i=1;i<=1000000;i++)
if(fabs((pow(i,N))-B)<fabs(pow(i+1,N)-B)&&(fabs(pow(i,N)-B))<fabs(pow(i-1,N)-B))
a[j]=i;
j++;
}
for(int i=0;i<j;i++)
cout<<a[i]<<endl;
return 0;
}
using namespace std;
int main()
{
int B,N,i,j=0;
int a[1000];
while(cin>>B>>N)
{ if(B==0&&N==0)
break;
for(i=1;i<=1000000;i++)
if(fabs((pow(i,N))-B)<fabs(pow(i+1,N)-B)&&(fabs(pow(i,N)-B))<fabs(pow(i-1,N)-B))
a[j]=i;
j++;
}
for(int i=0;i<j;i++)
cout<<a[i]<<endl;
return 0;
}
感想:要灵活的运用各种函数。
0 0