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

Python判断Armstrong number先输出两次错误结果,该如何排查修复?

问题原因
  • 判断逻辑被放在了while循环内部,每处理一位数字就会执行一次判断并输出结果,没有等所有数位的立方和计算完成就提前校验,自然会出现多次输出的情况。
  • 以输入153为例,循环会执行3次:
    1. 第一次取个位3计算立方,累加和为27,与153不相等,输出错误结果
    2. 第二次取十位5计算立方,累加和为27+125=152,与153不相等,再输出一次错误结果
    3. 第三次取百位1计算立方,累加和为152+1=153,与153相等,输出正确结果
修复方案

将判断逻辑移出while循环,等所有数位的立方和全部计算完成后,仅做一次判断即可。同时原代码中的elif (x!= sum_)可以直接替换为else,减少重复判断。

修复后代码如下:

x = int(input("enter your number"))
f = x 
sum_ = 0
while(f>0):
    a =f % 10
    f = int(f//10)
    sum_ =sum_ + (a**3)

if x == sum_:
    print("it is armstrong")
else:
    print(x,"is not an armstrong number") 

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 17:06:05