得益=586+600=1186
支出=586
小梁得益=258
小梁因给258*586/1186=127.5
小李得益499+100=599
小李因给599*586/1186=296

解决方案 »

  1.   


     呵呵,写了个程序来算累死了,可郁闷,不知道对不对,大家验证吧
    根据比例算的
    =========================================总现金:1085
    总返券:1080
    合计:2165
    小米:实际消费:155.52
    小梁:实际消费:111.78
    小李:实际消费:218.7
    小李:实际消费:318.7
    ========================================= 
     
    <?
    class Arithmetic 
    {
    var $arrShoppingInfo; var $cash; //支付现金
    var $cashTicket; //获得购物券
    var $allCash; //全部货款
    var $allCashTicket; //全部返券
    var $allInclusive; //货款、返券合计

    var $ctPer; //返券比例 function Arithmetic($ctPer)
    {
    $this->arrShoppingInfo = array();
    $this->ctPer = $ctPer;
    }


    /**
     * 设置个人鞋价及获得的返券
     *
     * @param unknown_type  string
     * @param unknown_type  int
     */
    function SetShoppingInfo($clientName, $retailPrice)
    {
    $this->arrShoppingInfo["$clientName"]['retailPrice'] = $retailPrice;
    $this->arrShoppingInfo["$clientName"]['cashTicket'] = $this->GetCashTicket($this->arrShoppingInfo["$clientName"]['retailPrice']);
    }

    /**
     * 获取返券额
     *
     * @param  int
     * @return  int
     */
    function GetCashTicket($cash)
    {
    return floor($cash/100)*$this->ctPer*100;
    }

    /**
     * 获取全部现金及返券
     *
     */
    function GetAllInclusive()
    {
    foreach ($this->arrShoppingInfo as $clientInfo)
    {
    $this->allCash += $clientInfo['retailPrice'];
    $this->allCashTicket += $clientInfo['cashTicket'];
    }
    $this->allInclusive = $this->allCash + $this->allCashTicket;
    }


    /**
     * 消费比例
     *
     */
    function SetShoppingPer()
    { foreach ($this->arrShoppingInfo as $clientName => $clientInfo)
    {
    $clientAllInclusive = $clientInfo['retailPrice'] + $clientInfo['cashTicket'];
    $this->arrShoppingInfo["$clientName"]['shoppingPer'] = round($clientAllInclusive/$this->allInclusive, 2);
    }
    }

    function GetClientShopping($cashPayment)
    {
    foreach ($this->arrShoppingInfo as $clientName => $clientInfo)
    {
    $this->arrShoppingInfo["$clientName"]['cashPayment'] = $cashPayment*$this->arrShoppingInfo["$clientName"]['shoppingPer'];

    }
    }

    /**
     * 分配剩余购物券
     *
     */
    function DistributeSurplus($distribute)
    {
    foreach ($this->arrShoppingInfo as $clientName => $clientInfo)
    {
    $this->arrShoppingInfo["$clientName"]['distribute'] = $distribute*$this->arrShoppingInfo["$clientName"]['shoppingPer'];

    }
    }
    }
    $Arithmetic = new Arithmetic(1.2);
    //设置个人消费
    $Arithmetic->SetShoppingInfo('小米', 328);
    $Arithmetic->SetShoppingInfo('小梁', 258);
    $Arithmetic->SetShoppingInfo('小李', 499);$Arithmetic->GetAllInclusive();
    $Arithmetic->SetShoppingPer();
    $Arithmetic->SetShoppingPer();//实际消费金额
    $Arithmetic->GetClientShopping(586);//剩余金额分配
    $Arithmetic->DistributeSurplus(100);
    echo '<pre>';
    echo "总现金:$Arithmetic->allCash\n";
    echo "总返券:$Arithmetic->allCashTicket\n";
    echo "合计:$Arithmetic->allInclusive\n";
    foreach ($Arithmetic->arrShoppingInfo as $clientName => $clientInfo)
    {
    echo "$clientName:实际消费:".($clientInfo['cashPayment']-$clientInfo['distribute'])."\n";
    }
    echo "小李:实际消费:".($Arithmetic->arrShoppingInfo["小李"]['cashPayment']-$Arithmetic->arrShoppingInfo["小李"]['distribute']+100).'<br>';
    print_r($Arithmetic->arrShoppingInfo);
    ?>
      

  2.   

    得益=586+600=1186
    支出=586
    小梁得益=258
    小梁因给258*586/1186=127.5
    小李得益499+100=599
    小李因给599*586/1186=296
    --------------------------------------
    这个答案不合理:
     小梁如果自己去买鞋: 付258返还240,只化了18元,买一双258的鞋。
     现在同样得到一双258的鞋,却要付给小李127.5,她显然不干。
     小李也是 296-101(多余的票)=195买了一双499的鞋。
       自己买:499-480=19, 她也不干了
      

  3.   

    既然这样,
    那大家干嘛不都去自己买呢
      

  4.   

    觉得她们都挺傻的,明摆着都亏了,看这题目出的
      

  5.   

    现实生活中,只返购物券不返现金,亏的就是我们消费者,反正我们这里都是返现金,返购物券的根本卖不动。
      

  6.   


               我认为应该先求出600元的购物卷需多少钱,然后反利
      

  7.   

    我会这么卖鞋,不知道商场干不干。先买小梁的258元的鞋,然后在买小米的328元鞋,最后买小李的499元的鞋。1.先花258元买小梁的鞋,得到240元的购物券;2.再花88买小米的328元鞋,得到360元的购物券;(因为有240元的购物券)3.再花139买小李的499元的鞋,得到480元的购物券;(因为有360元的购物券)这样一共花了485元钱买了三双鞋,而且还得到了480元的购物券。是不是很赚呀??
    标价一共要花1085元 :
    小梁占258/1085 ,
    小米占328/1085,
    小李占499/1085。实际一共花了485元 :
    小梁花485*258/1085 = 115.32,
    小米占485*328/1085 = 146.62,
    小李占485*499/1085 = 223.06。这样就差不多了。呵呵。
      

  8.   

    完全是个比例运算,不写也罢
      

  9.   

    显然,用购物券买东西是没有购物券送的
    不然就可以用一点点钱把店里的东西都搬回家
      

  10.   

    呵呵那就修改以下计划先买 499元的,再随便找一个1、2元的东西凑到500元,得到600元的购物券再用这600元的购物券去买 258元 + 328元  = 586 的鞋。这样商家好像也不能干,这不成了买一送二了吗?陪死了呀!!!
      

  11.   

    呵呵,现实中可都是一张单开一个商品的,可不会给你凑起来的。
    特别是超市,都明打着不参与活动的大告示:)