输入一个整数n,输出n的立方根是整数的个数

1个回答
展开全部
摘要 亲亲你好呀☺️可以通过二分查找来确定n的立方根是整数的个数。假设n的立方根为x,则有以下两种情况:- 当 x3 小于n时,则需要在[x+1, n]范围内寻找n的立方根是否为整数;- 当 x3 大于n时,则需要在[1, x-1]范围内寻找n的立方根是否为整数。代码如下:```pythondef cube_count(n): l, r = 0, n while l / 2 if mid ** 3 > n: r = mid - 1 elif (mid + 1) ** 3 <= n: l = mid + 1 else: return mid return 0# 测试print(cube_count(27)) # 1print(cube_count(64)) # 1print(cube_count(125)) # 1pr
咨询记录 · 回答于2023-03-19
输入一个整数n,输出n的立方根是整数的个数
亲亲你好呀☺️可以通过二分查找来确定n的立方根是整数的个数。假设n的立方根为x,则有以下两种情况:- 当 x3 小于n时,则需要在[x+1, n]范围内寻找n的立方根是否为整数;- 当 x3 大于n时,则需要在[1, x-1]范围内寻找n的立方根是否为整数。代码如下:```pythondef cube_count(n): l, r = 0, n while l / 2 if mid ** 3 > n: r = mid - 1 elif (mid + 1) ** 3 <= n: l = mid + 1 else: return mid return 0# 测试print(cube_count(27)) # 1print(cube_count(64)) # 1print(cube_count(125)) # 1pr
print(cube_count(216)) # 1print(cube_count(1000)) # 10```在上述代码中,l和r用于确定二分查找的范围,mid表示当前的中间值。当mid的立方大于n时,说明n的立方根在mid的左边,需要把r的值更新为mid-1;当(mid+1)的立方小于等于n时,说明n的立方根在mid的右边,需要把l的值更新为mid+1;否则,mid的立方等于n,也即n的立方根为mid,返回mid即可。检查一下示例:对于n=27,可以确定它的立方根为3,故返回1;对于n=64,可以确定它的立方根为4,故返回1;对于n=125,可以确定它的立方根为5,故返回1;对于n=216,可以确定它的立方根为6,故返回1;对于n=1000,可以确定它的立方根在10和11之间,故返回10。
下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消