有8 、8、3、3四个数字,每个数字只可以用一次,数字位置可以任意排列,在四个数字中间插入数字运算符包括(+-*/),使其运算结果等于24, 编写一个程序求解运算公式,并打印出运算公式

解决方案 »

  1.   

    分析:
             假如有 8,8,3,3,随便组合成为一个4为的整数,只要在任何地方插入*,结果都会大于24.        public class TTTY {
    public static void main(String[] args) {
    for(int n=0; n < 10000;n++){
    Set<Integer> set = new LinkedHashSet<Integer>();
    for(int ii=0;ii<Integer.MAX_VALUE;ii++){
    int s = new Random().nextInt(4);
    set.add(s);
    if(set.size()==4){
    break;
    }
        }
    System.out.println("组合的顺序:");
    for(Integer s:set){
    System.out.print(s);
    }
    System.out.println();
    StringBuilder str = new StringBuilder();
    List<String> list = new ArrayList<String>();
    list.add("3");
    list.add("3");
    list.add("8");
    list.add("8");
    for(Integer s:set){
    str.append(list.get(s));
    }
    System.out.println("组成的字符串:"+str.toString());
    }
     }
    }
      

  2.   

      public class 24time {
    public static void main(String[] args) {
    for(int n=0; n < 10000;n++){
    Set<Integer> set = new LinkedHashSet<Integer>();
    for(int ii=0;ii<Integer.MAX_VALUE;ii++){
    int s = new Random().nextInt(4);
    set.add(s);
    if(set.size()==4){
    break;
    }
      }
    System.out.println("组合的顺序:");
    for(Integer s:set){
    System.out.print(s);
    }
    System.out.println();
    StringBuilder str = new StringBuilder();
    List<String> list = new ArrayList<String>();
    list.add("3");
    list.add("3");
    list.add("8");
    list.add("8");
    for(Integer s:set){
    str.append(list.get(s));
    }
    System.out.println("组成的字符串:"+str.toString());
    }
     }
    }