乐趣区

关于javascript:百钱白鸡经典算法

100 文 去买 100 只鸡 每种鸡都必须有
公鸡 5 文 / 只 母鸡 3 文 / 只 小鸡 1 文 / 3 只

    // 工夫复杂度  100*100*100
    // let x,y,z ;
    // for(x =1 ;x <100; x ++){//     for(y =1 ;y <100; y ++){//         for(z = 1; z<100; z ++){//             if(x *5 +y *3 + z/3 === 100 && x+y+z === 100){//                 console.log(` 公鸡 ${x} 只, 母鸡 ${y} 只, 小鸡 ${z} 只,`);
    //             }
    //         }
    //     }
    // }

   


   // 进行优化  工夫复杂度 100*100
//    let x,y,z ;
//     for(x =1 ;x <100; x ++){//         for(y =1 ;y <100; y ++){
//             z = 100 - x -y ;
//             if(x *5 +y *3 + z/3 === 100 && x+y+z === 100){//                 console.log(` 公鸡 ${x} 只, 母鸡 ${y} 只, 小鸡 ${z} 只,`);
    
//             }
//         }
//     }

// 在做一些优化  事件复杂度 20 * 33
for (var x = 1 ; x <= 20; x++){    // 公鸡最多能买 20 只
    for(var y = 1; y<=33; y++){    // 母鸡最多只能买 33 只
        var z = 100 - x - y;        // 小鸡的数量可通过计算得出
            if((x+y+z==100)&&(x*5+y*3+z/3==100)){console.log('公鸡、母鸡、小鸡的数量别离是:'+x+','+y+','+z+'<br/>');           
        }
    }
};


    // 在进行优化 
    /**
     * x +y +z = 100    公式 1
     * 5x +3y+z/3 = 100   公式 2
     *  公式 2 *3  
     * 15x +9y +z = 300 公式 3
     * 公式 3 - 公式 1
     * 14x +8y = 200 公式 4
     * 
     * 公式 4 除以 2 
     * 7x +4 y = 100 
     * 7x/4 +y = 25
     * 
     * 设 k = x/4 
     * 7k + y = 25
     * 
     * y = 25-7k
     * x = 4k 
     * z = 100-  25+7k -4k  = 75+3k
     * 
     * x <100 ,y <0 ,z <100 
     * k <25   k<4    k< 25/3
     * 
     * 工夫复杂度 12 次
    
    */

    // let x, y, z 
    // for(let k =1 ;k< 4;k ++){
    //     x  = 4*k;
    //     y = 25-7*k;
    //     z  = 75 +3*k
    //     if(x +y +z === 100 && 5*x +3*y +z/3 === 100){//         console.log(` 公鸡 ${x} 只, 母鸡 ${y} 只, 小鸡 ${z} 只,`);
    //     }

    // }
退出移动版