任何自然数多可以分解成不同的比它更小的正整数之和.
例如:6的分解.
6;
5 1;
4 2; 4 1 1;
3 3; 3 2 1; 3 1 1 1;
2 4; 2 3 1; 2 2 2; 2 2 1 1; 2 1 1 1 1;
1 1 1 1 1 1;
如何统计一个正整数的分解问题了.觉得用分治法最好:
由观察可以知道,一个正整数n可以分解为比它小的(n-1), 1;
而(n-1)同样可以当作n继续再分解成比它更小的正整数.
为此得到如下的递归规律:
p(n) = q(n, m) //m为比n更小的正整数
其中如果:
- if(n == 0 || m == 0) p(n) = 0;
- if(n == 1 || m == 1) p(n) = 1;
- if(n < m) p(n) = q(n , n);
- if(n == m) p(n) = q(n, m) = q(n, m-1) + 1;
- 其余:p(n) = q(n, m) = q(n, m-1) + q(n-m, m); //n次递归后原整数变为n-m了.


























以上仅供参考