求助!
有两种赠送方式:
    一、消费满100赠送30,可赠送的券有30和90两种。
    二、赠送消费金额的百分比,比如赠送60%。可赠送的券也是有两种30和90元。
输入任意的消费金额计算赠送的券数。   有两种赠送券数量的方式:
        1、全部赠送小金额的券。
        2、优先赠送大金额的券,不足部分用小金额券,比如赠送金额为120元那么就赠送一张90元和一张30元。对于超出部分使用取大原则比如赠送130元,那么可以赠送5张30元或一张90元+两张30元。求算法。

解决方案 »

  1.   

    第一种30%,第二种60%,消费金额乘上百分比得到赠送金额,记作 money ,
    第一种送券方式
    int count = money / 30;
    if (money % 30 > 0)
    {
        ++count;
    }
    第二种送券方式
    int nine_count = money / 90;
    int m = money % 90;
    int three_count = m / 30;
    if (m % 30 > 0)
    {
        ++three_count;
    }
      

  2.   

    兄弟,电脑没编程环境,用记事本写的,你看看符合要求不,直接把代码拷到txt文件中,改成html格式。<html>
    <head>
    <title>test</title>
    <script type="text/javascript" language="javascript">
    //赠送方式1
    function calc()
    {
      var money=document.getElementById("input_money").value;//消费金额
      var num30=Math.floor(money/100);  //可赠送30券的数量
      //
      var num90=Math.round((num30/3)>=1?(num30/3):0); //可赠送90券的数量
      var num30_final=num30-num90*3; //剩下30券的数量  alert("全部赠送小额券:(30券数量:"+num30+")");
      alert("优先赠送大额券:(90券数量:"+num90+")(30券数量:"+num30_final+")");
    }
    //赠送方式2
    function calc2()
    {
      var money=document.getElementById("input_money").value;//消费金额
      var num30=Math.floor((money*0.3)/30);  //可赠送30券的数量
      //
      var num90=Math.round((num30/3)>=1?(num30/3):0); //可赠送90券的数量
      var num30_final=num30-num90*3; //剩下30券的数量  alert("全部赠送小额券:(30券数量:"+num30+")");
      alert("优先赠送大额券:(90券数量:"+num90+")(30券数量:"+num30_final+")");
    }
    </script>
    <head>
    <body>
    消费金额:<input type="text" id="input_money"></input>
    <input type="button" value="计算方式1" onclick="calc()"></input>
    <input type="button" value="计算方式2" onclick="calc2()"></input>
    </body>
    </html>