在Python中检查一个数字是否为三的幂次方之和的程序

在Python中检查一个数字是否为三的幂次方之和的程序

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

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

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

  • for i in range 16 to 0, decrease by 1, do
    • 如果 n >= 3^i , 那么
      • n := n – 3^i
  • 如果 n > 0, 那么
    • return False
  • return 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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程