COMP9021--7.4

1. 不能重复的将1-9组成三组数,要求三组数均为某一个数的平方和,第一组小于第二组,第二组小于第三组,列出所有的可能且不包含重复

第一个数最大的情况是根号下997,因为后面两个数都比它大,要留出空余且不包含0

同理第二组数最大是根号下9998

第三组数为根号9876532,因为要去掉可以开根号的两个即1 4

然后循环遍历检查a b c三组数是否符合要求,我们将a b c转化为字符串格式方便查重

set(str(3456)) ,我们可以得到{'3','4'...}

2. |,即union,可以将set结合在一起,如len(x|s)=len(s)+len(x)

3. 当我们什么都不想return时,可以直接写return,后面什么都不加

4. divmod(a,b)将得到商及余数

5. set也可以将一个列表转化成set

7. bin(x)[2:]将得到不含0b开头的二进制

8. 2的几次方相加转化二进制之后该次方变1其他为0,如果添加一个新的n次方进去先寻找该位置看是否为0,或者用<<表示移位

bin(2**3)[2:]
bin(1<<3)[2:]
will all get 1000

9. 同8类似,为了检测1-9数字是否全部包含,可以将他们均转化成2的几次方,如他们的加和等于2**10-1,即所有数字都在了

原文地址:https://www.cnblogs.com/eleni/p/11142813.html