早教吧 育儿知识 作业答案 考试题库 百科 知识分享

poj2109为什么wa这么水的题#include<iostream>#include<math.h>usingnamespacestd;intmain(){doublen,m,sum;while(cin>>n>>m){for(inti=1;sum<m;i++){sum=pow(i,n);if(sum==m){cout<<i<<endl;break

题目详情
poj2109为什么wa 这么水的题#include<iostream> #include<math.h> using namespace std; int main() { double n,m,sum; while(cin>>n>>m) { for(int i=1;sum<m;i++) { sum=pow(i,n); if(sum==m) { cout<<i<<endl; break; } } } }
▼优质解答
答案和解析
sum=pow(i,n); n太大,double能保存的有效数字不够,不能够精确的判断== 以前我写的... #include #include #include using namespace std; const double eps=1e-6; int main() { double n,p; while(scanf("%lf %lf",&n,&p)!=EOF) { double ans=pow(p+eps,1.0/n); printf("%.0lf\n",ans); } return 0; } 还有问题可以hi我