1.题目(如图)
2.js实现
function cho(arr){
//存分的两段的值
var x = [];
var y = [];
var flag = false;
//存个数
var num = 0;
//循环每一个值
for(var i=0;i<arr.length;i++){
x = [];
y = [];
flag = false;
var arr1 = [].concat(arr);
//这一步循环是指把一个数值分成两段的所有情况
for(var j=1;j<arr[i]-j;j++){
x.push(j);
y.push(arr[i]-j);
}
arr1.splice(i,1);
//根据其中一段去做判断
//原数组不存在这两段,且这两段不相等,且除这两段外原数组没有重复项,则标记为true
for(var z = 0;z<x.length;z++){
if(arr.indexOf(x[z])<0&&arr.indexOf(y[z])<0&&x[z]!=y[z]){
if(new Set(arr1).size==arr1.length){
flag = true;
break;
}
}
}
if(flag){
num+=1;
}
}
return num;
}
console.log(cho([5,6,7,8]));
console.log(cho([5,5]));
console.log(cho([2,3,4]));
console.log(cho([2]));
console.log(cho([5,5,6,6]));
console.log(cho([6,7,10,10]));
console.log(cho([6,6,7,7]));
console.log(cho([6,6,6,7]));