问题描述
正整数n,n=m1+m2+…+mk,其中mi为正整数,并且1≤mi≤n,集合{m1,m2,…,mk}是整数n的一个划分。
输入一个不小于10的整数,输出其所有整数划分。
思路
将整数n划分,假设某种划分中m为最大的整数,则:
n可分为n-m,m,(n-m)再由(m-1)划分
(n-m)可分为(n-m-(m-1)),(m-1),(n-m-(m-1)) 再由(m-2)划分
……
以此类推,直到m=0,停止划分,这样就将规模减小
if(n==0) return
if(m>1) f(n,m-1)
if(m<=n) f(n-m,m)
代码
def division(n, m, string)