问题描述
具体要求如图:例如总数为10000,生成份数是7,点生成后下面会出现7个随机数,并且这7个随机数相加会等于10000。 问题补充:liveHappy 写道
解决方案
我写了个最简单的方法了。<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title></head><body><script language="javascript" type="text/javascript">function a(){var count = parseInt(document.getElementById("sum").value);var len = parseInt(document.getElementById("num").value);var num = new Array();do{var sum=0;for(var i =0;i<len;i++){num[i]=parseInt(Math.random()*(count-1+1)+1);//生成的随机数放到数组里面sum+=num[i];}if(sum==count){ //如果三个数的和等于总数了,跳出循环break;}}while(sum!=count) //这部分可跟自己的意思自己进行赋值和显示处理 var str="";for(var j=0;j<num.length;j++){str+=num[j]+",";}document.getElementById("result").value=str;}</script>输入总数<input id="sum"/>输入生成份额<input id="num"/><input type="button" value="生成" onclick="a();"/>结果<input id="result" /></body></html>有些地方可以自己去改,主要的是去实现这样的功能。