用 Python 编写程序来查找重新排序后的 2 的幂

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

假设我们有一个正整数 N,我们以任意顺序(包括原始顺序)重新排序数字,使得首位数字不为零。我们必须检查是否可以以某种方式执行此操作,以使结果数字为 2 的幂。

因此,如果输入为 N = 812,则输出将为 True

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

  • i:= 1

  • 当 i<=1000000000 时,执行

    • s:= i 作为字符串

    • s:= 对 s 的字符进行排序

    • t:= n 作为字符串

    • t:= 对 t 的字符进行排序

    • 如果 s 与 t 相同,则

      • 返回True

    • i:= i*2

  • 返回 False

示例

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

def solve(n):
   i=1
   while i<=1000000000:

      s=str(i)
      s=''.join(sorted(s))
      t=str(n)
      t=''.join(sorted(t))
      if s==t:
         return True

      i=i*2

   return False

N = 812
print(solve(N))

输入

812

输出

True

相关文章


有用资源