肖恩的n次根(二分)
- 手机
- 2025-09-18 09:15:03

问题描述
喜欢研究数学问题的肖恩注意到,在编程语言中通常内置函数只有开平方根和开立方根。但是肖恩想知道开高次方根(大于 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); }肖恩的n次根(二分)由讯客互联手机栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“肖恩的n次根(二分)”