看不明白题,然后去网上找的解析:
分析不出规律,接着继续推算一下
1 [100]
2 [0,100]
3 [0,0,100]
4 [1,1,0,98]
5 [0,2,1,0,97]、[2,0,1,0,97]
//6号需要得到3个人的支持,首先是4号给他1个即可,其次有2种方案;
//其一给3号2个,最后一个在1和2中选1个,5号给1或2的是2个,但是是不确定给1还是2的,所以获得1或2的支持,需要给他2个即可
//其二给1和2各2个,3号0个
6 [2,0,2,1,0,95]、[0,2,2,1,0,95]、[2,2,0,1,0,95]
//7号需要得到3个人的支持,首先是5号给他1个即可,其次有6种方案:
//1234号取2人各给2个即可,同样因为5,6号分配的不确定性,所以给2即可
7 [2,2,0,0,1,0,95]、[2,0,2,0,1,0,95]、[2,0,0,2,1,0,95]、[0,2,2,0,1,0,95]、[0,2,0,2,1,0,95]、[0,0,2,2,1,0,95]
//规律总结有点思绪了
//从5号开始,作为n+1号,放弃n号给他0个,获取n-1号的支持给他1个,在0~n-2之间找 Math.ceil(n/2)-1 个分别给2即可
[4,100]
var printOut = function(arr){
let [n,m] = arr
let flag = -1;
let count = Math.ceil(n/2)-1
switch(n+1){
case 1: flag=m; break;
case 2: flag=-1; break;
case 3: flag=m; break;
case 4: flag=m-2; break;
default: flag = (m-2*count-1)>=0?(m-2*count-1):-1;
}
console.log(flag)
}
printOut([4,100])
结果:(可以直接复制以上代码,浏览器右键检查显示开发者模式,点击console栏,粘贴代码回车即可看到效果)
//printOut([4,100])
97
//printOut([5,100])
95
//printOut([6,100])
95
//printOut([6,5])
0
//printOut([6,4])
-1
//printOut([5,4])
-1
//printOut([4,4])
1