zoukankan      html  css  js  c++  java
  • 巧克力棒分割

    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]));
  • 相关阅读:
    问题 K: 找点
    问题 B: 喷水装置(二)(在c++上运行有错误,提交AC了)
    问题 A: 喷水装置(一)
    问题 Q: 最大的数
    问题 O: 寻找最大数(三)
    96.n-1位数
    问题 K: A/B Problem
    问题 D: 某种序列
    被限制的加法
    1031苹果分级
  • 原文地址:https://www.cnblogs.com/xinyouhunran/p/14923490.html
Copyright © 2011-2022 走看看