在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