用js把一个整数分解成多个整数之和,并把所有结果打印出来,求代码;例如4=(1+3),(2+2),(1+2+1)……

解决方案 »

  1.   


    var num = 4;
    var arr = [];
    function search(n,s,x) {
    if (n>0) {
    for (var i = s; i <= n; i++) {
    arr[x] = i;
    search(n-i,i,x+1);
    }
    return;
    }
    document.write("<br>"+num+"="+arr[0]);
    for (var i = 1; i < x; i++) {
    document.write("+"+arr[i]);
    }
    }
    search(num,1,0);
      

  2.   

        const total = 5
        const arr = []
        function sum(n, list, start) {
            for (let i = start; i <= n / 2; i++) {
                list.push(i)
                sum(n - i, list, i)
                list.pop()
            }
            list.length && arr.push([].concat('(' + list.join('+') + '+' + n + ')'))
        }
        sum(total, [], 1)
        console.log(total + '=' + (arr.length ? arr.join(',') : total))