求救,有四个数 1,2,3,5,任意相加(可以重复)等于一个固定值N(<15),列出所有可能组合,用java实现!

2024-12-12 17:35:43
推荐回答(2个)
回答1:

算法如下: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
求组合也是差不多,替换就行

回答2:

每一种组合里面,这4个数字都必须至少出现一次,是这样么?