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

Python数字各位求和程序异常:输入29返回2而非预期11求助

问题排查与解决

你的代码实现的是数字根计算(反复将各位数字求和,直到结果为单个数字),而非你需要的「单次各位数字之和」。这就是输入29返回2的原因:

  • 第一次求和:2+9=11
  • 因为11≥10,触发外层while循环,继续拆分11求和:1+1=2
  • 最终返回2

修正后的代码

移除外层的while循环,只保留单次求和逻辑即可满足需求:

def soma_digitos(y):
    digitosSum = 0
    # 仅计算一次各位数字之和
    while y > 0:
        digitosSum += y % 10
        y //= 10
    return digitosSum

# 读取输入
y = int(input("Digite um número inteiro: "))
# 输出结果
print("Todos os dígitos somados:", soma_digitos(y))

验证结果

输入29时,程序会直接计算2+9=11并返回,完全符合预期。如果后续需要计算数字根,再恢复外层的while循环即可。

内容的提问来源于stack exchange,提问作者Gabriel Mariano

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 11:52:13