在 Python 中查找重新排列的 2 次幂的程序


假设我们有一个正整数 N,我们重新排列数字的顺序(包括原始顺序),以使首位数字不为零。我们必须检查是否可以通过这种方式使结果数成为 2 的幂。

因此,如果输入类似于 N = 812,那么输出将为 True

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

  • i:= 1

  • while 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

更新于: 06-Oct-2021

114 次浏览

开始你的 职业

修完课程即可获得认证

开始
广告
© . All rights reserved.