5个数通过+、-、*、/得到小于49的数,我的想法是通过循环排序,得到各相邻两个数的+、-、*、/的结果,再保存在数据组中,……不断得出,看各位有没有更好的思路!

解决方案 »

  1.   

    五个任意的数还是五个各位数?
    是最接近49?如果不是就算这五个数组合的最小值就可以了!如果五个数互不相等!
    用最小的数除最大的数!=a
    用道数第2小除道数第2大的数!=b
    a*b*剩余的那个数!如果有相等的结果就是0!
      

  2.   

    玩过扑克牌算24的游戏没有?只是把 = 24 换成 <49 ?楼主是要找到所有符合要求的结果吧?
    不是那么简单,很容易陋掉结果,也很容易有重复结果(如:1 2 3 4 4这样的输入;先乘后除 与 先除后乘 等),也要排除除数为0,输出结果的去括号问题,甚至去了括号后又有了重复结果,调试时检验结果的真确性 等等
    做个算24的程序吧,只需少许调整即可改成你想要的。算出3、3、8、8 怎样得出24就OK了!
      

  3.   

    to forrainbow_007() :运算符能用多次,但每个数就只能用一次!
      

  4.   

    double a,b,c,d,e
    //这5个数由用户任意指定;考虑共有4种连接方式即
    a*(b|c|d|e)
    a+(b|c|d|e)
    a-(b|c|d|e)
    a\(b|c|d|e)
    ...
    依些类推...
    所有可连接方案一共是4*5!(有没有不同意的?)
    分别计算之然后找出符合条件的即可...
      

  5.   

    TO ProjectDD() 
    当然不同意,怎么可能只有20种方案呢?
    a,b,c,d,e的顺序可以任意排列
    应该是有 1*2*3*4*20种方案