java吧 关注:1,298,336贴子:12,837,332

回复:大神们,这题用Java可写?

只看楼主收藏回复

花不到整3600的


IP属地:浙江来自Android客户端17楼2015-09-27 03:49
收起回复
    最笨的办法:
    分段分析:
    num<=10 双时:price=240*num,价格上限为2400
    10<num<=25时:price=240*num-6*(num-10)(num-9)/2,价格上限为5280
    num>25时:price=5280+150*(num-25)
    于是反过来:
    price<=2400时,num=price/240
    2400<price<=5280时,num=[297-sqrt(297²-(price+270)*12)]/6
    price>5280时,num=(price-5280)/150+25
    最后判断一下num是否为整数,整数输出结果,非整数报错。
    也可以做的巧妙一点:比如第二段不用求方程的办法,而是直接循环num++来获得num的数值。最后else一个报错。
    但基本思路肯定是分段处理。


    IP属地:北京18楼2015-09-27 11:15
    收起回复
      2026-02-27 23:34:51
      广告
      不感兴趣
      开通SVIP免广告
      超过10双后是之前的每双也便宜呢还是10双之后的再便宜?


      19楼2015-09-27 11:31
      收起回复
        刚看到回复,按我上面做的那种其实可以解题,不过自己的确忽略了题意产生的歧义。现在提供以下三种解题思路:
        1、10双之前毫无疑问,该怎么算怎么呢算!
        ---------------------------------------------
        2、10到25双(这里假设我们购买n双) 2概率最高 1 3 概率偏小(也别争辩哪种概率最小,那就没完没了了)
        1)n双鞋统一按240-6*(n-10)的均价处理(我上面的代码就是这么做的)//有人想这不亏死了,不过这是零售商(面对大批量采购)最有可能采取的两种方法其一
        2)10双鞋之后的n-10双鞋统一按240-6*(n-10)的均价处理//零售商(面对小批量采购或者消费者)最有可能采取的方法其二
        3)10双鞋之后的鞋按240-6,240-6*2,240-6*3,240-6*4.....240-6*15处理,即每一双鞋有单独的价格//最不可能采用的方案,因为这样顾客心理上产生不了实惠的感觉
        -------------------------------------------------
        3、25双以后的其实也很好处理,只不过需要确定恰好买25双鞋花费的钱数(毕竟第二部分有分歧)
        1)25*150=3750
        2)240*10+15*150=4650
        3)240*10+(234+150)*15/2=5280
        -------------------------------------------------
        这以上三种解题思路均能用java编写好程序,第一种我已经编好了!剩下的两种也很容易编!楼主想试试的话就试试!


        IP属地:河北20楼2015-09-27 14:26
        收起回复
          System.out.println(3600/150);
          楼主拿好不送


          IP属地:重庆21楼2015-09-27 14:27
          收起回复
            public class Math {
            private static int bb = 0;// 物品的价格
            private static int max = 240;
            private static int min = 150;
            private static int bm = 360;// 总价
            private static int bmt = 0;// 计算着的总价
            private static int bn = 10;// 保持原价的个数
            private static int bc=6;//每次减少的价格
            public static void main(String[] args) {
            bmt = max * bn;
            int i = max - bc;
            while (i > min) {
            bmt = bmt + i;
            if (bmt > bm) {
            System.out.println("鞋子的数量 :" + bn + "当前的鞋子价格 :" + i);
            break;
            }
            bn++;
            i = i - 6;
            }
            if (bmt < bm) {
            int a = 0;
            while (true) {
            bmt = bmt + a * min;
            if (bmt >= bm) {
            System.out.println("总价格:" + bmt + "当前鞋子数量:" + bn + a);
            break;
            }
            a++;
            }
            }
            }
            }
            拿去 不送


            IP属地:重庆23楼2015-09-27 14:55
            收起回复
              好人真多


              IP属地:河南来自Android客户端24楼2015-09-28 21:27
              收起回复
                class Shoes
                {
                public static void main(String[] args)
                {
                int i;//鞋子的数量
                //240,初始单价
                //240-(i-10)*6>=150//条件
                //i<=25
                int sum;//总金额
                for (i=10;i<=25 ;i++ )
                {
                sum=(240-(i-10)*6)*i;
                if (sum==3600)
                {
                System.out.println(i);
                }
                }
                }
                }


                26楼2015-09-28 22:34
                收起回复
                  2026-02-27 23:28:51
                  广告
                  不感兴趣
                  开通SVIP免广告
                  public static void main(String args[]) {
                  int num = 0;
                  for(;num<100;num++){
                  if(calcPrice(num) == 3600){
                  System.out.println(num);
                  break;
                  }
                  }
                  }
                  public static int calcPrice(int num){
                  int price = 240;
                  if(num > 10){
                  price = 240 - 6*(num - 10);
                  if(price < 150){
                  price = 150;
                  }
                  }
                  return price * num;
                  }


                  IP属地:上海28楼2015-09-29 13:17
                  回复


                    IP属地:江苏来自iPhone客户端29楼2015-09-29 13:21
                    回复
                      哪个SB买这么多鞋子?


                      IP属地:四川30楼2015-09-29 13:28
                      回复
                        数学方程式列好。。去程序里面列表达式。。


                        IP属地:贵州来自Android客户端31楼2015-09-30 00:24
                        回复
                          吧务十循环


                          IP属地:湖北来自Android客户端33楼2015-09-30 08:39
                          收起回复