App 2.0开发模式的行业看法
801
2022-10-20
请用Python实现一段程序,可以对一个整数k进行拆分,得到所有由1到k的整数相加的形式
问题描述
请用Python实现一段程序,可以对一个整数k进行拆分,得到所有由1到k的整数相加的形式。下面举例说明了4的几种拆法,相同的数,顺序不同,看作同一形式,如4=1+2+1就与4=1+1+2相同。
4=1+1+1+1
4=1+1+2
4=1+3
4=2+2
4=4
感受
第一次用python写了个递归,居然入了深拷贝和浅拷贝的坑,python代码是简洁,也比较容易犯错了,看来基础还是需要的。
代码
import copyimport operatordef solve(n,sum,list_res): if(sum>n): return if(sum==n): list_res.sort() # print(list_res) b=list_res flag=True for item in result: if(item==list_res): flag=False break if(flag): result.append(copy.deepcopy(list_res)) # print(result) # print(list_res) # print(result) for i in range(1,n+1): list_res.append(i) solve(n,sum+i,list_res) list_res.pop() return resultif __name__ == "__main__": val=input("please input: ") # print(val) result=[] list_res=[] result=solve(val,0,list_res) for item in result: print(item)
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。