You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python不使用幂运算符求立方根:输出立方不大于输入的最大整数

代码修正方案

原代码核心问题

  • 违反需求使用了幂运算符**,且浮点数开立方存在精度误差,导致1000的计算结果错误
  • 函数内部已执行打印逻辑,外部调用时额外加了print(),导致每次输出多出一行返回值
  • 没有区分完全立方和非完全立方的输出分支,格式和要求不匹配

修正后代码

def cubic_root(n):
    sign = 1
    if n < 0:
        sign = -1
        n = abs(n)
    # 用循环找立方值<=n的最大整数,全程不使用幂运算符
    max_int = 0
    while (max_int + 1) * (max_int + 1) * (max_int + 1) <= n:
        max_int += 1
    actual_cube = max_int * max_int * max_int
    diff = n - actual_cube
    # 按要求格式输出
    if diff == 0:
        print(f"{max_int * sign}, exact!")
    else:
        print(f"{max_int * sign},not exact with difference {diff}")
    return max_int * sign

# 直接调用即可,无需额外加print
cubic_root(99)
cubic_root(2000)
cubic_root(1000)

运行输出

完全匹配要求的结果:

4,not exact with difference 35
12,not exact with difference 272
10, exact!

内容的提问来源于stack exchange,提问作者Jana Sayegh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 06:15:03