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

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

假设我们有一个正整数N,我们可以按任意顺序(包括原始顺序)重新排列数字,使其首位数字不为零。我们必须检查是否可以以这种方式做,以使得得到的数字是2的幂次方。

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

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

  • i:= 1

  • while i<=1000000000, do

    • 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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程