上海人才引进网站百度一下 你就知道官网
问题描述
喜欢研究数学问题的肖恩注意到,在编程语言中通常内置函数只有开平方根和开立方根。但是肖恩想知道开高次方根(大于 3 次方称为高次方)应该怎么来做。请你设计一个程序来帮帮肖恩。
输入描述
输入两个数字 a 和 b ,输出 a 的 b 次方根的值。
数据保证: 0<a≤1000,1≤b≤5。
输出描述
输出 aa 的 bb 次方根的值乘 1000 后保留整数的结果。
样例输入
5 3
样例输出
1709
说明
55 开 33 次方根的结果保留五位小数是 1.709981.70998 ,乘 10001000 得到 1709.981709.98 ,保留整数以后得到 17091709 。
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define endl '\n'double a,b;bool check(double n)
{double cnt=1;for(int i=1;i<=b;i++)cnt*=n;return cnt>=a;
}
double bsearch(double l,double r)
{double eps=1e-6;while(r-l>eps){double mid=(l+r)/2;if(check(mid))r=mid;else l=mid;}return r;
}
int main()
{cin>>a>>b;double ans=bsearch(1.0,1000.0);cout<<(int)(ans*1000);
}