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

if else语句与0判断问题:求正负平方根仅得负数结果求助

解决负数平方根只得到负结果的问题
  • 问题出在你的逻辑只生成了单个符号的根:对负数取绝对值开平方后加负号,正数直接取正根,自然只能得到单一符号的结果(负数对应负根,正数对应正根),没法同时拿到正负两个根。

  • 正确的处理逻辑是:先计算原数绝对值的平方根(记为sqrt_val),然后同时输出sqrt_val和-sqrt_val两个结果:

    • 原数为正数时,两个结果都是实数根;
    • 原数为负数时,两个结果是复数根(需要用虚数单位i表示)。
  • 拿Python举个实际代码例子:

    import math
    
    def get_both_square_roots(num):
        abs_num = abs(num)
        sqrt_val = math.sqrt(abs_num)
        if num >= 0:
            return (sqrt_val, -sqrt_val)
        else:
            return (complex(0, sqrt_val), complex(0, -sqrt_val))
    
    # 测试用例
    print(get_both_square_roots(9))   # 输出 (3.0, -3.0)
    print(get_both_square_roots(-9))  # 输出 (3j, -3j)
    
  • 额外说明:如果只考虑实数范围,负数没有平方根,只有正数才有两个互为相反数的实根。如果你的场景需要复数根,上面的代码就能满足需求,同时得到正负两种结果。

内容的提问来源于stack exchange,提问作者Ruiyu Lin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 20:45:15