求救,有四个数 1,2,3,5,任意相加(可以重复)等于一个固定值N(<15),列出所有可能组合,用java实现! 5
2个回答
展开全部
算法如下:N=1+1+1+1+1+...+1(共N个1) 一种
若N-1>0 N=2+1+1+1+1+...+1(共N-1个1)N-1种(两个1换个2)
若N-2>0 N=3+1+1+1+...+1(共N-2个1)N-2种(三个1换个3)
若N-4>0 N=5+1+...+1(共N-4个1)N-4种(五个1换个5,还有2,3换5的情况)
5=(2+3)=(3+2)=(1+2+2)=(2+1+2)=(2+2+1) 5种
故N>=5时有 5*(N-4) + (N-2) + (N-1) + 1
求组合也是差不多,替换就行
若N-1>0 N=2+1+1+1+1+...+1(共N-1个1)N-1种(两个1换个2)
若N-2>0 N=3+1+1+1+...+1(共N-2个1)N-2种(三个1换个3)
若N-4>0 N=5+1+...+1(共N-4个1)N-4种(五个1换个5,还有2,3换5的情况)
5=(2+3)=(3+2)=(1+2+2)=(2+1+2)=(2+2+1) 5种
故N>=5时有 5*(N-4) + (N-2) + (N-1) + 1
求组合也是差不多,替换就行
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询