官网上下载的看到题目思路很乱,不知该从何下手,求高人指点思路9.代码设计(满分18分)整数的分划问题。 
如,对于正整数n=6,可以分划为: 

5+1 
4+2, 4+1+1 
3+3, 3+2+1, 3+1+1+1 
2+2+2, 2+2+1+1, 2+1+1+1+1 
1+1+1+1+1+1+1 
现在的问题是,对于给定的正整数n,编写算法打印所有划分。
用户从键盘输入 n (范围1~10)
程序输出该整数的所有划分。

解决方案 »

  1.   

    来来,这是前一次一个仁兄的一个变体,估计你能解决问题~你在删选一下吧public static void main(String[] args) {
    run(6);
    } public static void run(int n) {
    ArrayList<Integer> al = new ArrayList<Integer>();
    p(n, al, n);
    } private static void p(int n, List<Integer> al, int size) {
    if (n == 0) {
    for (Integer i : al)
    System.out.print(i + " ");
    System.out.println();
    } else if (n < 0) {
    return;
    } else {
    int num = al.size();
    for (int i = 1; i <= size; i++) {
    al.add(i);
    p(n - i, al, size);
    al = al.subList(0, num);
    }
    }
    }