|
|
主贴的解有 9 个:
- # List a - b
- def setMinus(a,b):
- c = []
- for j in a:
- if b.count(j) == 0:
- c.append(j)
- return c
- # 123 -> [1,2,3]
- def numToSet(n):
- r = n % 10
- s = [r]
- n = (n -r)/10
- while n > 0:
- r = n % 10
- n = (n-r)/10
- if s.count(r) == 0:
- s.insert(0,r)
- return s
- # List a inteset b
- def setCap(a,b):
- s = []
- if len(a) <= len(b):
- u,v = a,b
- else:
- u,v = b,a
- for j in u:
- if v.count(j) > 0:
- if s.count(j) == 0:
- s.append(j)
- return s
-
- def tryTen():
- ary = [9,8,7,6,5,4,3,2,1,0]
- nm = 0
- for a in ary:
- if a == 0:
- return
- for b in ary:
- if b ==a:
- continue
- for c in ary:
- if c == a or c == b:
- continue
- bry = setMinus(ary,[a,b,c])
- for u in bry:
- if u == 0:
- break
- for v in bry:
- if v == u:
- continue
- p = (100*a +10*b +c)*(10*u +v)
- # print "@ %d x %d = %d" % (100*a+10*b+c, 10*u+v,p)
- if p < 10234:
- break
- if len(setMinus(setMinus(ary,[a,b,c,u,v]),numToSet(p))) == 0:
- nm += 1
- print "(%d): %d x %d = %d" % (nm, 100*a+10*b+c, 10*u+v,p)
- return
-
复制代码 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|