import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class TestSplitInt {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
int n;
while((n=in.nextInt())!=-1){
System.out.println("你选择的是分割:"+n);
List<String> resultList = split(n);
for (String string : resultList) {
System.out.println(string);
}
System.out.println("答案个数:" + resultList.size());
}
in.close();
}
public static List<String> split(int a) {
List<String> result = new ArrayList<String>();
for (int i = a; i > 0; i--) {
int b = a - i;
if (b == 0)
result.add(i + "");
else if (b <= i)
result.add(i + "+" + b);
if (b > 1) {
List<String> temp = split(b);
for (int j = 1; j < temp.size(); j++) {
String s = temp.get(j);
int m = Integer.parseInt(s.substring(0, s.indexOf("+")));
if (m <= i)
result.add(i + "+" + s);
}
}
}
return result;
}
}
运行结果示例: