在 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
广告