本文主要是介绍最大加数问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
整数划分问题
将正整数n表示成一系列正整数之和P(6) = 11
5+1;
4+2,4+1+1;
3+3,3+2+1,3+1+1+1;
2+2+2, 2+2+1+1, 2+1+1+1+1;
1+1+1+1+1;
q(n,m) = 1 (n=1,m=1)
q(n,m) = q(n,n) (n<m)
q(n,m) = 1 + q(n,n-1) (n=m)
q(n,m) = q(n,m-1) + q(n-m,m) (n>m>1)
int q(int n, int m) {if((n < 1) || (m < 1)) {return 0;}if((n == 1) || (m ==1)) {return 1;}if(n < m) {return q(n, n);}if(n == m) {return q(n, m-1) + 1;}return q(n,m-1) + q(n-m, m);}
这篇关于最大加数问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!