<script>
ls=[]
shangren=[8,8,3,16,16,16,16]
function f(now){
if(now[3]==4&&now[4]==4&&now[5]==4&&now[6]==4){
return true;
}
for(let i=0;i<shangren.length;i++){//倒出
for(let j=0;j<shangren.length;j++){//倒入
if(i===j){
continue;
}
if(now[i]==0){
continue;
}
if(j<3&&shangren[j]==now[j]){
continue;
}
if(now[i]>=shangren[j]-now[j]){
dao=shangren[j]-now[j]
now[i]-=dao
now[j]+=dao
}else{
dao=now[i]
now[j]+=dao
now[i]-=dao
}
b=false
for(let value of now){
if(value<0){
b=true
}
}
if(b){
now[i]-=dao
now[j]+=dao
continue
}
b1=false;
for(let ls1 of ls){
b=true
for(k in ls1){
if(ls1[k]!==now[k]){
b=false
}
}
if(b===true){
b1=true
break
}else{
}
}
if(!b1){
ls.push(now)
}else{
continue;
}
if(f(now)===true){
console.log(now[0],now[1],now[2],now[3],now[4],now[5],now[6])
}else{
}
}
}
return false;
}
f([8,8,0,0,0,0,0])
</script>
在这里插入代码片
分水问题,倒水问题,有7个杯子,最大容量分别为(8,8,3,16,16,16,16)装的水分别为(8,8,0,0,0,0,0)需要相互倒水结果(0,0,0,4,4,4,4)求过程
最新推荐文章于 2021-07-03 21:34:05 发布