java将一个给定的整数转换成一个由小于该数的所有正整数组成的数组,从中取指定个数的元素相加使之和是被

将一个给定的整数转换成一个由小于该数的所有正整数组成的数组,从中取指定个数的元素相加使之和是被拆的数,有多少种组合,有会这个算法的没?比如说,10,分成1,2,3,4,5... 将一个给定的整数转换成一个由小于该数的所有正整数组成的数组,从中取指定个数的元素相加使之和是被拆的数,有多少种组合,有会这个算法的没?
比如说,10,分成 1,2,3,4,5,。。。。9
然后1,4,5组合等于10
展开
 我来答
云中游民
2012-12-27 · TA获得超过602个赞
知道小有建树答主
回答量:697
采纳率:33%
帮助的人:615万
展开全部
public static int getTheNumberOfPossibilities_ladder(int n,int num){
return getTheNumberOfPossibilities_noFloor(n,num-(n+1)*n/2);
}
public static int getTheNumberOfPossibilities_noFloor(int n,int num){
int sum = 0;
int n_next_max = 0;
if( n == 1 || num ==1 ){
return 1;
}else if( n >= num ){
n_next_max = num;
}else{
n_next_max = n;
}
for(int i = 1 ; i <= n_next_max ; i++){
sum += getTheNumberOfPossibilities_smoothFloor(i,num);
}
return sum;
}
public static int getTheNumberOfPossibilities_smoothFloor(int n,int num){
if(n>num){
return 0;
}else if(n==num){
return 1;
}else{
return getTheNumberOfPossibilities_noFloor(n,num-n);
}
}
调第一个方法就行了,n是指定个数,num是指定整数,返回组合的数量,目前还不能把所有组合打印出来,先这样吧,有机会再改。(注意,不考虑非法输入和元素可重复的情况)
hdparrot
2012-12-25 · TA获得超过2403个赞
知道小有建树答主
回答量:1385
采纳率:0%
帮助的人:1145万
展开全部
被拆的数?什么意思?举个例子吧
追问
比如说,10,分成 1,2,3,4,5,。。。。9
然后1,4,5组合等于10
追答
暂时只想出了用多重循环的方法求结果,取出X个元素,就要做X重循环。
感觉应该可以用递归来做,想出来以后我再改。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式