本帖最后由 jujucats 于 2010-08-18 22:30:32 编辑

解决方案 »

  1.   

    package lishi;import java.util.ArrayList;
    import java.util.List;public class linshi { /**
     * @param args
     */
    public static List list = new ArrayList(); public static void main(String[] args) {
    // TODO Auto-generated method stub
    new linshi().fangfa1(18);
    //new linshi().fangfa2(18);
    //new linshi().fangfa3(18);
    for (int i = 0; i < list.size(); i++) {
    System.out.println(list.get(i));
    }
    }
    //第一种
    public List<String> fangfa1(int range) {
    String total = "";
    for (int i = 0; i < 10; i++) {
    for (int m = 0; m < 10; m++) {
    if (range - m - i < 10 && range - m - i > -1) {
    total = i + "+" + m + "+" + (range - m - i)+"="+range;
    this.list.add(total);
    }
    }
    } return null;
    }
    //第二种情况
    public List<String> fangfa2(int range) {
    String total = "";
    for (int i = 0; i < 10; i++) {
    if (range - (2*i) < 10 && range - (2*i) > -1&&(range - (2*i))!=i) {
    total = i + "+" + i + "+" + (range - i - i)+"="+range;;
    this.list.add(total);
    }
    }
    return null;
    }
    //第三种情况
    public List<String> fangfa3(int range) {
    String total = "";
    for (int i = 0; i < 10; i++) {
    //不能和i相等 m < 10&&m!=i
    for (int m = 0; m < 10&&m!=i; m++) {
    if (range - m - i < 10 && range - m - i > -1&&range - m - i!=i&&range - m - i!=m) {
    total = i + "+" + m + "+" + (range - m - i)+"="+range;;
    this.list.add(total);
    }
    }
    }
    return null;
    }
    }
    第一种会有相同的,如果不需要可以自己去掉!