一道技术面试题,求取相加等于7的所有组合,求大神指导啊?

解决方案 »

  1.   

    如果是整数范围内的,除去不重复的:
            private static final int ADD_RESULT = 7; public void setSeven(int startInt, StringBuffer sb) {
    if (startInt > ADD_RESULT) {
    startInt = ADD_RESULT;
    }
    if (startInt < (ADD_RESULT - ADD_RESULT / 2) || startInt < 0) {
    return;
    }
    if (sb == null) {
    sb = new StringBuffer("");
    }
    sb.append("[" + startInt + ":" + (ADD_RESULT - startInt) + "]");
    setSeven(startInt - 1, sb);
    }
      

  2.   

    package me.luger.base;public class Interview2 { /**
     * @param args
     */
    public static void main(String[] args) {
    // 一道技术面试题,求取相加等于7的所有组合,求大神指导啊?
    method(1);
    }

    static void method(int start){
    if(start == 7){
    return;
    }
    for(int i=start+1;i<7;i++){
    if(i+start == 7){
    System.out.println("["+start+","+i+"]  ");
    }
    }
    method(start+1);
    }}这个意思?
    输出
    [1,6]  
    [2,5]  
    [3,4]