D&C_整数划分问题
问题描述:
将正整数n表示成一系列正整数之和,n=n1+n2+...+nn,求总的划分数
算法思路:
定义q(n,m)表示最大加数不大于m,从递归角度分析q(n,m)得
1, m=1或n=1
q(n,n-1)+1, m>=n
q(n,m-1)+q(n-m,m), m<n
程序:
1 int division(int n, int m) 2 { 3 if(n < 1 || m < 1) return 0; 4 if(n == 1 || m == 1) return 1; 5 if(n > m) 6 return division(n - m, m) + division(n , m - 1); 7 if(n == m || n < m) 8 return division(n, n-1) + 1; 9 }

浙公网安备 33010602011771号