微软100题-天天做-第21题

来源:互联网 发布:2017淘宝冷门暴利产品 编辑:程序博客网 时间:2024/05/30 04:41
第21题(数组)
2010年中兴面试题
编程求解:
输入两个整数 n 和 m,从数列1,2,3.......n 中 随意取几个数,

使其和等于 m ,要求将其中所有的可能组合列出来.


package com.microsoft;import java.util.ArrayList;import java.util.List;public class MSumOfN {private static List<Integer> result=new ArrayList<Integer>();public static void fenjie(int m,int n){if(m<0){return;}if(n<=0){return;}if(m==0){for(int i=0;i<result.size();i++){System.out.print(result.get(i)+"+");}System.out.println();}if(n>m){n=m;}result.add(n);fenjie(m-n,n-1);if(result.size()>0){result.remove(result.size()-1);fenjie(m,n-1);}}public static void main(String[] args) {fenjie(20,10);}}


0 0
原创粉丝点击