Python 中的阿姆斯特朗数

pythonserver side programmingprogramming更新于 2025/10/26 18:52:17

假设我们有一个 k 位数字 N。当每个数字的 k 次幂之和为 N 时,N 就是阿姆斯特朗数。因此,如果它是阿姆斯特朗数,我们必须返回 true,否则返回 false。

为了解决这个问题,我们将遵循以下步骤 −

  • power := 位数
  • temp := n, res = 0
  • 当 temp 不为 0 时
    • res := res + (temp mod 10) ^ power
    • temp := temp / 10 //整数除法
  • 如果 res = n,则返回 true,否则返回 false。

示例

让让我们看看下面的实现以获得更好的理解 −

import math
class Solution(object):
   def poww(self,base,power):
      res = 1
      while power:
         if power & 1:
            res *= base
         base *= base
         power>>=1
      return res
   def isArmstrong(self, n):
      power =int(math.log10(n)) + 1
      temp = n
      res = 0
      while temp:
         res += (self.poww(temp%10,power))
         temp//=10
      return res == n
ob1 = Solution()
print(ob1.isArmstrong(153))

输入

153

输出

true

相关文章


有用资源