Quelle est la solution pour imbriquer des boucles avec un nombre incertain de niveaux en PHP ?
你心哥我啦
你心哥我啦 2021-05-21 20:33:26
0
1
871

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 ?

你心哥我啦
你心哥我啦

répondre à tous(1)
Peter_Zhu

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

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal