nums = [str(x) for x in range(10)]
#创建 0 到 9 十个数字字符串的列表
nums = set(nums)#对上述列表随机排序,并转化为集合形式
res = 1 #计数器,从 1 开始
while True:
temp = ''#创建一个空字符串
temp += str(res**2)
#空字符串 连接上 目标数字的平方,类似于 “1”+“1” = “11”
temp += str(res**3)#连接上 目标数字的立方,同上
temp = set(temp)#将temp字符串随机排序,并转化为集合形式
if temp == nums:
#如果两个集合相等,就说明temp中的数字包含我们设置的从 0 到 9 十个数字的字符串,并且不重复,即如题目所说
#那么此处的疑问是怎么保证两个随机排序的字符串数字的集合的顺序能一样呢?
#本文最下面在pycharm中做了实验,同一程序中,只要字符串相同,调用set()函数随机排序的结果也一样,见文末图片
print(res)#如果相等就输出该目标数字,即我们想要的数字
break#中断while循环
res +=1#如果 if 条件未成立,while循环继续,res继续找寻目标数字
[蓝桥杯] 奇妙的数字 代码解析(Python 实现)
最新推荐文章于 2024-02-08 12:26:37 发布