题目
翻译
大概意思是我给你一个不超过20位的整数,你将其乘以2倍,所得到的数如果是原来的数各个位排列得到的就输出yes 如果不是输出no,不管是与否都输出乘以2的结果。
算法
这题我使用python去解决比较简单,如果用c语言弄 需要用字符串数组,而用python 可以存储的下,无需考虑那么多,将数乘以2倍后把他变成列表,设原来的数为a,乘积后的数为b,将a,b都转化为列表,遍历b,只要b的元素是在a中的 a,就删除那一元素,再用一个标志变量,如果b有的元素,a没有用标志变量标记,那yes的条件就是a最后是空,并且,变量没被标记(改变过),其余为no。
代码如下
a=int(input())
b=a*2
c=b
a=list(str(a))
b=list(str(b))
flag=1
for i in b:
if i in a:
a.remove(i)
else:
flag=0
break
if flag==1 and len(a)==0:
print('Yes')
else:
print('No')
print(c)