用 Python 编写程序检查数字是否为 3 的幂之和

pythonserver side programmingprogramming更新于 2025/12/2 6:04:17

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

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

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

  • 对于范围从 16 到 0 的 i,减少 1,执行

    • 如果 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

相关文章


有用资源