recherche

Maison  >  Questions et réponses  >  le corps du texte

Quelle est la solution pour imbriquer des boucles avec un nombre incertain de niveaux en PHP ?

Description du problème : les nombres suivants sont tous des paramètres transmis 1. Donnez un nombre inconnu de fourchettes de prix de produits et la quantité maximale pouvant être vendue, le prix de vente le plus bas, le prix de vente le plus élevé et la plus grande quantité de produit A 1105 1115 29. Produit B 1605 1620 33 Produit C 2005 2025 172. Étant donné que le total fixe des ventes de cette commande est de 14850

Le paramètre de publication de la question ci-dessus peut être exprimé comme suit :

$arr[0][‘low’]=1105;
$arr[0][‘high’]=1115;
$arr[0][‘num’]=29;
$arr[1][‘low’]=1605;
$arr[1][‘high’]=1620;
$arr[1][‘num’]=33;
$arr[2][‘low’]=2005;
$arr[2][‘high’]=2025;
$arr[2][‘num’]=17;
$total=14850;

Question : Combien de combinaisons de ventes existe-t-il et le tableau est retourné ? Le point clé est que le nombre de paramètres unidimensionnels transmis à chaque fois est incertain, c'est-à-dire qu'il peut y avoir 100 produits à calculer.

Il est très simple de l'écrire directement, mais il ne peut pas du tout être encapsulé :

for ($a=1105; $a <= 1115; $a++) { 
 for ($b=1605; $b <= 1620; $b++) { 
   for ($c=2005; $c <= 2025 ; $c++) { 
     for ($x=0; $x <= 19; $x++) { 
       for ($y=0; $y <= 30 ; $y++) { 
         for ($z=0; $z <= 10 ; $z++) { 
           if ($a*$x + $b*$y +$c*$z == 14850) {
             echo $a."*".$x ."+". $b."*".$y."+". $c."*".$z."<br>";
           }
         }
        }
     }
   }
 }
}

Le problème réside dans l'incertitude sur le nombre de types de produits transmis. Combien de fois cette incertitude doit-elle être cyclique ? des idées devraient-elles être utilisées pour le résoudre ?

你心哥我啦你心哥我啦1316 Il y a quelques jours897

répondre à tous(1)je répondrai

  • 猪老湿

    猪老湿2021-07-08 16:12:26

    Ce n'est pas une bonne idée d'utiliser des boucles imbriquées si vous n'êtes pas sûr du niveau

    répondre
    0
  • Annulerrépondre