Python程序:检查数字是否为3的幂的和


假设我们有一个数字n,我们需要检查是否可以将n表示为3的幂的不同和。如果存在整数x使得y = 3^x,则整数y被称为3的幂。

因此,如果输入为n = 117,则输出为True,因为117 = 3^4 + 3^3 + 3^2 = 81 + 27 + 9。

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

  • 对于i从16到0递减,执行:

    • 如果n >= 3^i,则

      • n := n - 3^i

  • 如果n > 0,则

    • 返回False

  • 返回True

示例

让我们来看下面的实现,以便更好地理解:

def solve(n):
   for i in range(16, -1, -1):
      if n >= pow(3,i):
         n -= pow(3,i)

   if n > 0:
      return False

   return True

n = 117
print(solve(n))

输入

117

输出

True

更新于:2021年10月6日

495 次浏览

开启您的职业生涯

完成课程获得认证

开始学习
广告