|
下面是一段 python 语言的小代码,处理一般的“分拆”问题.
- from math import *
- def splt(n,k):
- d = 10**k
- a = n%d
- b = (n-a)/d
- return a,b
-
- def fds(n,k):
- if n < 1:
- return []
- if k < n and n < 10:
- return []
- if k == n:
- return [[k]]
- ss = []
- m = 0
- while True:
- m += 1
- a,b = splt(n,m)
- if b == 0:
- break
- if a == 0:
- continue
- tt = fds(b,k-a)
- ll = len(tt)
- if ll > 0:
- for j in range(ll):
- (tt[j]).append(a)
- ss = ss+tt
- return ss
复制代码 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|