int extra = 3;
Map<Integer, Integer> extraMap = new HashMap<Integer, Integer>();
public void recursiveSend(int fee) {
if (fee <= 0 || extra <= 0) {
return;
} else {
int size = fee / extra; // 由最高位开始获得每位上的个数
extraMap.put(extra, size);
if (fee % extra != 0) { // 如果存在余数,则进行递归调用
fee = fee % extra;
extra--;
recursiveSend(fee);
}
}
}
以上是将一个数分解成1、2、3,例如10等于3个3和1个1,11等于3个3和1个2,12等于4个3…………
本文介绍了一种使用递归方法来将一个整数分解为若干较小整数之和的算法实现,具体而言,该算法将一个整数逐步分解为3、2、1的组合,并记录每一步的分解结果。
1580

被折叠的 条评论
为什么被折叠?



