拆分组合 求和

package test1;
import java.util.LinkedList;
//输入整数,输出其所有拆分组合,如输入4 ,输出{1,1,1,1} {1,1,2} {1,3} {2,2}
public class 和组合 {
	public static void f(int n,LinkedList list1,int start) {
		if (n==1) {
			for (int i = 0; i < list1.size(); i++)
				System.out.print(list1.get(i)+ "+");
			System.out.println(1);
		}
		else {
			for (int i = start; i <= n/2; i++) {
				list1.add(i);
				f(n-i, list1, i);
				list1.remove(list1.size()-1);	
			}
			for (int i = 0; i < list1.size(); i++)
				System.out.print(list1.get(i)+ "+");
			System.out.println(n);
		}
	}

	
    public static void main(String args[]) {	  
    	LinkedList  list1 = new LinkedList ();
    	 f(4, list1, 1);
    }

}

  

posted @ 2014-05-20 15:03  蓦然回首的包子  阅读(248)  评论(0)    收藏  举报