题: 将一个整数 num 划分为若干个整数相加,这些整数是大于等于0且小于等于 max_num 的整数,试求有多少种划分方案。
'''
如:
num = 5
max_num = 3
输出是:
5
整数5 可以被划分为1+1+1+1+1、2+3、2+1+1+1、2+2+1、3+1+1
'''
1 class Solution(object): 2 def func(self,num,max_num): 3 if num<1 or max_num<1: 4 return 0 5 if num==1 or max_num==1: 6 return 1 7 if num<max_num: 8 return self.func(num,num) 9 if num==max_num: 10 return 1+self.func(num,max_num-1) 11 return self.func(num-max_num,max_num)+self.func(num,max_num-1) 12 13 # eg. 14 demo = Solution() 15 act= demo.func(5,3) 16 print(act) # 5
2023-9-10笔记