求正整數 n 所有可能的和式的組合

求正整數 n 所有可能的和式的組合(如; 4=1+1+1+1、 1+1+2、 1+3、 2+1+1、2+2)


import java.util.ArrayList;
import java.util.List;

public class PrintSubArr {
	static List<Integer> tmp = new ArrayList<Integer>();
	public static void solution(int n, int start){
		if(n<0){
			return;
		}else if(n==0){
			for(int i: tmp){
				System.out.print(i+" ");
			}
			System.out.println("");
		}else{
			for(int i=start;i<=n;i++){
				//System.out.println("--------------"+tmp);
				tmp.add(i);
				solution(n-i,i);
				tmp.remove((Integer)i);
			}
		}
	}
	public static void main(String[] args) {
		solution(10,1);
	}
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章