Python中检查数字是否是三的幂和的程序

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

因此,如果输入类似于 n = 117,那么输出将为 True,因为 117 = 3^4 + 3^3 + 3^2 + = 81 + 27 + 9。

示例

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

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