WEB开发网
开发学院网页设计JavaScript 拆分自然数:纯while实现 (Part 2 - 实现) 阅读

拆分自然数:纯while实现 (Part 2 - 实现)

 2010-09-14 13:47:48 来源:WEB开发网   
核心提示: functionmain(m,n,min,max){vararray=newArray(n);vari=0;varwrite=function(){console.log(m+'='+array.join('+'));};varscan=function()

function main(m, n, min, max) {
    var array = new Array(n);
    var i = 0;
    
    var write = function() {
        console.log(m + ' = ' + array.join(' + '));
    };
    
    var scan = function() {
        if (scan.start) {
            scan.start = false;
            scan.sum = 0;
        }
        scan.sum += array[i];
        return (array[i] > array[n - 1] - 2);
    };
    
    var step = function() {
        array[i]++;
        fill.sum = scan.sum - array[i];
        i++;
    };
    
    var fill = function() {
        while (i < n) {
            array[i] = Math.max((fill.sum - (n - i - 1) * max), ((i == 0) ? min : array[i - 1]));
            fill.sum -= array[i];
            i++;
        }
        i--;
    };
    
    fill.sum = m;
    fill();
    write();
    while (true) {
        scan.start = true;
        while (i >=0 && scan()) {
            i--;
        }
        if (i < 0) {
            break;
        }
        step();
        fill();
        write();
    }
}

上一页  1 2 3 4  下一页

Tags:拆分 自然数 while

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接