怎样分发5到arr里面[1,4]或[...]? 本帖最后由 mingfish2 于 2010-09-27 12:18:04 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不知道你要算法,还是如何存放数据。算法的话,就是分割整数,用递归,对整数n分成n1和n2,然后同样的方法分割n1和n2。数据存放的话function hello(){ var y= parseInt(Math.random()*4+2); //2,3,4,5 var arr=[[1,2,2],[1,1,1,1,1],[2,3]]; arr= y==5?[[1,2,2],[1,4],[1,1,3],[1,1,1,1,1],[2,3]]: y==4?[[1,3],[2,2],[1,1,2],[1,1,1,1]]: y==3?[[1,2],[1,1,1]]:[1,1]; } <html><head><script language="javascript" type="text/javascript"> function hello(){ // var y= parseInt(Math.random()*4+2); //2,3,4,5 var arr=new Array(); var num=0; var i=1; var j=1; var k=1; var y=3 for( i=0;i<=y;i++) { for( j=0;j<=y;j++) { for( k=0;k<=y;k++) { if((i+j+k)==y) { arr[num]=i+","+j+","+k; num++; } } } } for(var tt=0;tt<arr.length;tt++) { alert(arr[tt]); } }</script></head><body><button onclick="hello();">hello</button></body></html>随即出来的数字是多少就有多少层循环 再把符合条件的添加进数组 还有 你的规则貌似有问题 谢谢funfun5433,不过结果总是只有【a,b,c】3个孩子,没有【1,4】或【1,2,1,1】.... <html><body><script type="text/javascript">function hello(){ var arr = [], ret = [], y = parseInt(Math.random()*4 + 2); (function(n){ for(var i = 1; i <= n; i++){ arr.push(i); if(i != n ) arguments.callee(n - i); if(i == n && arr.length > 1) ret.push(arr.join(" ")); arr.pop(); } })(y); alert(y + "\n" + ret.join("\n"));}</script><button onclick="hello();">hello</button></body></html> 谢谢猛男Free_Wind22,好简洁啊 jquery arr.each(fn)=$.each(arr,fn) html5使用draggable出现的问题 关闭浏览器事件问题~~ 用JS换屏效果就报错(对象不支持此方法),不用此效果就正常。。。。。。 javascript的变量的域 郁闷,乱码,是浏览器的问题还是JavaScript的问题 求1970-01-01这样格式的正则表达式 javascript怎么取url的值 请帮帮我呀 在网页上做一个电子时钟的问题 如何改变javascript嵌入html的图片替换脚本中图片的指向路径? alert之后,如果返回当前页面。
算法的话,就是分割整数,用递归,对整数n分成n1和n2,然后同样的方法分割n1和n2。
数据存放的话function hello(){
var y= parseInt(Math.random()*4+2); //2,3,4,5
var arr=[[1,2,2],[1,1,1,1,1],[2,3]];
arr= y==5?[[1,2,2],[1,4],[1,1,3],[1,1,1,1,1],[2,3]]:
y==4?[[1,3],[2,2],[1,1,2],[1,1,1,1]]:
y==3?[[1,2],[1,1,1]]:[1,1];
}
<html>
<head>
<script language="javascript" type="text/javascript"> function hello(){
// var y= parseInt(Math.random()*4+2); //2,3,4,5
var arr=new Array();
var num=0;
var i=1;
var j=1;
var k=1;
var y=3
for( i=0;i<=y;i++)
{
for( j=0;j<=y;j++)
{
for( k=0;k<=y;k++)
{
if((i+j+k)==y)
{
arr[num]=i+","+j+","+k;
num++;
}
}
}
}
for(var tt=0;tt<arr.length;tt++)
{
alert(arr[tt]);
}
}</script>
</head>
<body>
<button onclick="hello();">hello</button>
</body>
</html>
随即出来的数字是多少就有多少层循环 再把符合条件的添加进数组
还有 你的规则貌似有问题
<html><body>
<script type="text/javascript">
function hello(){
var arr = [], ret = [], y = parseInt(Math.random()*4 + 2);
(function(n){
for(var i = 1; i <= n; i++){
arr.push(i);
if(i != n ) arguments.callee(n - i);
if(i == n && arr.length > 1) ret.push(arr.join(" "));
arr.pop();
}
})(y);
alert(y + "\n" + ret.join("\n"));
}
</script>
<button onclick="hello();">hello</button>
</body></html>