Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Zamiana rekurencji na iterację (Pilne)
Forum PHP.pl > Forum > Przedszkole
Raito
Witam

Męczę się już od paru godzin, w jaki sposób zamienić skrypt rekurencyjny wyszukujący podzbiory na iteracyjny. Coś wykombinowałem, ale utknąłem w miejscu:
Rekurencja:
  1. function podzbiory($pocz,$p,$k){
  2.  
  3. if($p>$k){
  4. echo " _<br/>";
  5. }elseif($p==$k){
  6. echo $pocz;
  7. printf("%3d<br/>",$p);
  8. echo $pocz." _<br/>";
  9. }else{
  10.  
  11. $strpom = sprintf("%3d",$p);
  12. $strpom = $pocz.$strpom;
  13.  
  14. podzbiory($strpom,$p+1,$k);
  15.  
  16. $strpom = $pocz." _";
  17.  
  18. podzbiory($strpom,$p+1,$k);
  19.  
  20. }
  21.  
  22. }

Iteracja:
  1. function podzbiory($pocz,$p,$k){
  2.  
  3. $l=$p;
  4. $strpom = $pocz;
  5.  
  6. do{
  7. $pocz = $strpom;
  8. if($l>$k){
  9. echo " _<br/>";
  10. }elseif($l==$k){
  11. echo $pocz;
  12. printf("%3d<br/>",$l);
  13. echo $pocz." _<br/>";
  14. }else{
  15. $strpom = sprintf("%3d",$l);
  16. $strpom = $pocz.$strpom;
  17. }
  18. $l++;
  19. }while($l<=$k);
  20.  
  21. $strpom = $pocz." _";
  22.  
  23.  
  24.  
  25. //podzbiory($strpom,$p+1,$k);
  26.  
  27. }

Proszę chociaż o wytłumaczenie, jak działa skrypt gdy są 2 wywołania rekurencyjne.

Naprawdę nikt nie jest w stanie pomóc?
aniolekx
może zacznij jednak od książki "Czysty Kod", nauczysz się poprawnie nazywać zmienne.
Raito
Umiem nazywać poprawnie zmienne, to jest przepisany przykład z książki. Pomyślałem, że nie będę już zmieniał nazw i będzie mi łatwiej to zamienić na iterację.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.