/** * 输入15,输出:1,2,3,4,5;4,5,6;7,8; */ public class ZhengXuHe { public static void main(String[] args) { Scanner sc = new Scanner(System.in); boolean boo = true; while (boo) { System.out.print("输入计算的数:"); int a = sc.nextInt(); if (a > 0) { int sum = 0; String ss = ""; System.out.print("符合这个数的有:"); for (int i = 1; i < (a + 1) / 2; i++) { for (int j = i + 1; j <= (a + 1) / 2; j++) { sum = fsum(i, j); if (sum == a) { ss = fstring(i, j); System.out.print(ss); System.out.print(";"); } } } System.out.println(); } else { return; } } } //递归拼接字符串 private static String fstring(int i, int j) { String sss = ""; if (i == j) { sss = i + ""; } else { sss = fstring(i, j - 1) + "," + j; } return sss; } //递归求和 private static int fsum(int i, int j) { if (i == j) { return i; } else { return j + fsum(i, j - 1); } } }