把一个数字分解成几个数字,使得几个数字相加之和为它
分类:面试、递归算法
代码
import java.util.ArrayList;
public class SumOfNum {
public static void main(String[] args) {
int n=7;
ArrayList<String> num = findNum(n);
for (String e:num) {
System.out.println(e);
}
}
public static ArrayList<String> findNum(int n) {
ArrayList<String> arrayList = new ArrayList<>();
if (n/2 < 1) {
return arrayList;
} else {
for (int i=1;i<=n/2;i++) {
for (String e:findNum(n-i)) {
arrayList.add(i+"+"+e);
}
arrayList.add(i+"+"+(n-i));
}
return arrayList;
}
}
}
好运三连
如果对你有帮助的话,别忘了点赞收藏转发哦!