假设我们有一个数 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