今天 一个朋友问我一个问题 
一个班有40到50名同学  出去玩  分小组 每个小组可以是4人或者6人  分几个组可以分完  另外求出这个班一共多少人我知道具体答案是48人  请问 怎么用php写出来  我写的时候遇到个问题 怎么同时处以4  和 6 .....

解决方案 »

  1.   


    for($i=40;$i<=50;$i+=2)
    {
    if($i % 6 == 0 && $i % 4 == 0)
    {
    echo $i;
    break;
    }
    }
      

  2.   

    for($x = 40; $x <= 50; $x += 2) {
       if ($x % 4 == 0) {
          $group4 = $x / 4;
          $group6 = 0;
          break;
       }
       else {
          if ($x % 6 == 0) {
             $group4 = 0;
             $group6 = $x / 6;
          }
          else {
             for($group4 = 1; $group4 < $x / 4; $group4 ++) {
                if (($x - $group4 * 4) % 6 == 0) {
                   $group6 = ($x - $group4 * 4) / 6;
                   break 2;
                }
             }
          }
       }
    }
    echo "学生数:{$x}<br />4人组:{$group4}<br />6人组{$group6}";
      

  3.   

    遍历法,不过好像我的理解有点问题,学生数应该是40 < 学生数 < 50吧?这样的话,4楼的代码有问题,修改一下:(算出来结果是42,能被6整除)
    for($x = 41; $x < 50; $x ++) {
       if ($x % 4 == 0) {
          $group4 = $x / 4;
          $group6 = 0;
          break;
       }
       else {
          if ($x % 6 == 0) {
             $group4 = 0;
             $group6 = $x / 6;
             break;
          }
          else {
             for($group4 = 1; $group4 < $x / 4; $group4 ++) {
                if (($x - $group4 * 4) % 6 == 0) {
                   $group6 = ($x - $group4 * 4) / 6;
                   break 2;
                }
             }
          }
       }
    }
    echo "学生数:{$x}<br />4人组:{$group4}<br />6人组{$group6}";
      

  4.   

     for($j=0; $j<=12; $j++)
        {
            for($k=0; $k<=8; $k++)
            {
             $sum = $k * 6 + $j * 4;
             if(40<$sum && $sum<50)
             {
             echo "4人一组有".$j."组"."<br/>";
             echo "6人一组有".$k."组"."<br/>";
             echo "共".$sum."人"."<br/>";
             echo "-------------------------------------------------<br/>";
             }
            }
        }
    我这样是已知小组的情况下 把所有的变量因素全部算出来
      

  5.   


    for($i=1;;$i++){
      if($i*(6*4)>=40 && $i*(6*4)<=50){
        echo $i;
        break;
      }
    }