欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 会展 > 肖恩的n次根

肖恩的n次根

2025/3/9 5:03:33 来源:https://blog.csdn.net/zqystca/article/details/146124384  浏览:    关键词:肖恩的n次根

1.肖恩的n次根 - 蓝桥云课

问题描述

喜欢研究数学问题的肖恩注意到,在编程语言中通常内置函数只有开平方根和开立方根,但是肖思想知道开高次方根(大于3次方称为高次方),应该怎么做。请你设计一个程序来帮帮肖恩。

输入描述

输入两个数字 a 和 b,输出 a 的 b 次方根的值。
数据保证:0 < a ≤ 1000, 1 < b ≤ 5

输出描述

输出 a 的 b 次方根的值乘1000后保留整数的结果。

样例输入

5 3

样例输出

1769

说明

5 开 3 次方根的结果保留五位小数是 1.70998,乘 1000 得到 1709.98,保留整数以后得到 1709。

运行限制

语言最大运行时间最大运行内存
C++1s256M
C1s256M
Java2s256M
Python33s256M
PyPy33s256M
Go3s256M
JavaScript3s256M

总通过次数: 261 | 总提交次数: 282 | 通过率: 92.6%

难度: 中等 标签: 思维, 二分

版权声明

思路:

代码:

#include <iostream>
#include<iostream>
#include <cmath>
using namespace std;
int main()
{int a,b;cin>>a>>b;int result = pow(a,1.0/b)*1000;cout<<result;return 0;
}

思路:
二分

代码如下:

#include <iostream>
#include <cstring>
#include <queue>
using namespace std;
bool check(double a,double b,double k)
{double res = 1;for(int i = 1 ; i <= b ; i++){res *= k;}if(res < a)return true;elsereturn false;
}
int main() 
{ios::sync_with_stdio(0);cin.tie(0); cout.tie(0);int a,b;cin >> a >> b;double l = 0 , r = 1001;while(r - l > 1e-9){double mid = (l + r) / 2;if(check(a,b,mid)){l = mid;	}	else{r = mid;}} int ans = r * 1000;cout << ans;return 0;
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词