贪心算法—Problem M
题意
题目很简单,给定两个数分别是n,p;其中p是n的k次方,要求输入n和p,然后计算出k的值并输出。
解题思路
乍一看问题并不难,想到了cmath库里的pow函数,但一看测试数据发现很大,查找了一下基本数据类型的double发现并未超出它的范围,所以索性就用这种方法来做了,调用pow函数,求p的1/n次方(逆用条件),由于所求是double类型所以对所求数据进行相关操作并转换为int型的k,并输出即可。
感想
表面上看题目不难,但所给数据比较大,不知道这种做法是不是出题人意图,但提交后AC了,也不知道说啥了。
AC代码
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
double n,p;
int k;
while(cin>>n>>p)
{
k=(pow(p,1.0/n)+0.5);
cout<<k<<endl;
}
}