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

如何编写Python函数判断输入参数是否为Armstrong数

编写一个函数,验证其接收的参数是否为Armstrong数。Armstrong数指该数等于其各位数字的幂次之和(幂次为数字的总位数)。

你现有的四位数判断逻辑存在三个可优化的点:

  • 整数拆分时用了普通除法/会得到浮点数,会导致各位计算出现误差,应该用整数除法//
  • 硬编码了四位的拆分规则,没法适配1位、3位、5位等任意长度的阿姆斯特朗数判断
  • 语法层面else后缺少冒号,运行会直接报错

以下是通用的实现代码:

def is_armstrong(num):
    # 转换为字符串方便取每一位,同时获取数字总位数
    num_str = str(num)
    digit_length = len(num_str)
    # 计算各位数字的digit_length次幂之和
    total = sum(int(digit) ** digit_length for digit in num_str)
    return total == num

# 输入输出交互逻辑
n = int(input("Enter a number: "))
if is_armstrong(n):
    print("Its an Armstrong number!")
else:
    print("Its Not an Armstrong")

该实现支持任意正整数的阿姆斯特朗数校验,无需根据数字位数修改拆分逻辑,1位的1~9、3位的153、4位的1634等经典阿姆斯特朗数都可以正常识别。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 02:15:03