• 红包算法设计


    最近在群里抢红包,抢的甚是开心,似乎这已经过时了,但发钱总是好的嘛,哈哈,熟悉了红包的规则,就自己编了个小程序,模拟下

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>无标题文档</title>
    <script type="text/javascript">

    window.onload=function()
    { var aResult=[];
    var dollar=document.getElementById("m");
    var count=document.getElementById("r");
    var star=document.getElementById("start");
    var oUl=document.getElementById("ull");
    star.onclick=ss;

    //查找所有的随机数
    function redbag(money,count)
    {
    var num=0;
    if(count==1)
    {
    aResult.push(money);


    return;
    }
    else
    {
    num=parseInt(Math.random()*money)+1;
    money=money-num;
    aResult.push(num);
    redbag(money,count-1);

    }


    }
    // 检验随机数是否都大于零
    function check()
    {
    var b=true;
    for(var i=0;i<aResult.length;i++)
    {
    if(aResult[i]>0)
    {

    continue;
    }
    else
    {
    b=false;
    break;
    }

    }
    return b;

    }
    //结合

    function ss()
    {
    aResult.length=0;
    redbag(dollar.value,count.value);
    check();
    while(!check())
    { aResult.length=0;
    redbag(dollar.value,count.value);
    check();

    }
    li=document.createElement("li");

    li.innerHTML=aResult;
    oUl.appendChild(li);


    }
    }

    </script>
    </head>

    <body>
    金额:<input type="text" id="m"/>
    红包数:<input type="text" id="r"/>
    <input type="button" value="发放" id="start"/>
    <ul id="ull">

    </ul>
    </body>
    </html>

    写的这个程序,复杂度高点,望大神给点指点哈

  • 相关阅读:
    Flask简述
    1601. 救生艇
    1538. 卡牌游戏 II
    1604. 两数最大和
    1790. 旋转字符串II
    1540. 能否转换
    vs2012加载EntityFrameWork框架,连接Oracel
    MVC文件上传
    IIS发布程序,出现:请求的内容似乎是脚本,因而将无法由静态文件处理程序来处理解决方案
    封装Socket.BeginReceive/EndReceive支持Timeout简介
  • 原文地址:https://www.cnblogs.com/wenyan/p/4424351.html
Copyright © 2020-2023  润新知