百钱白鸡-经典算法

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+'
'); } } }; //在进行优化 /** * 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} 只,`); // } // }

你可能感兴趣的:(javascript,算法)