Ilość pętli zagnieżdżonych w zależności od wartości zmiennej

0

Witam, chciał bym aby w zależności od wartości danej zmiennej. Na przykład jeżeli zmienna wynosi 2:

<code=C++>
for(int i = 0; i < 1; i++)
for(int j = 0; j < j; i++)
return 1;


A jeżeli 3 to:

<code=C++>
for(int i = 0; i < 1; i++)
    for(int j = 0; j < j; i++)
         for(int k = 0; k < k; i++)
            return 1;

Myślałem o wykorzystaniu jakoś rekurencji, ale pewnie jest jakiś lepszy sposób. Nie ma sensu sobie niepotrzebnie komplikować

0

Po co Ci X zagnieżdżonych pętli, możesz to wykonać w jednej - wystarczy przeliczyć ile to będzie iteracji. A to co napisałeś to jakieś bzdury: int k = 0; k < k; i++, a na końcu return, wtf.

0

To jest przykład. Potrzebne mi te pętle, żeby zrobić zadanie:
http://hs.spoj.pl/problems/HS12HOPP/

Potrzeba porównywac ze sobą możliwe ruchy i wydaje mi się, że tak będzie najwygodniej

0

High School Programming League 2012/2013?
Wiesz że jest zakaz pisania rozwiązań do aktualnie trwających konkursów?
Ale podpowiem ci: twój pomysł jest bez sensu i błędny. To co chciałbyś zrobić to zwykła rekurencja z powrotami i to na pewno nie jest sposób na rozwiazanie tego zadania. Taka rekurencja ma złożoność wykładniczą ;] O czym warto pomyśleć? O Algorytmie dynamicznym.

0

Nikt nie mówił nic o rozwiązaniu, chcę tylko podpowiedź odnośnie tych pętli :)

0

@021995 konkursy na tym polegają że robi się je samodzielnie. Mają wyłonić tych którzy są lepsi od innych. Takich którzy proszą o podpowiedzi powinno się dyskwalifikować.

0
#include <iostream>
using namespace std;

int main()
  {
   unsigned max[]={2,3,4};
   const unsigned maxsize=sizeof(max)/sizeof(*max);
   unsigned var[maxsize];
   for(unsigned i=0;i<maxsize;++i) var[i]=0;
   while(true)
     {
      // tablica var zawiera twoje zmienne pętli
      for(unsigned p=0;p<maxsize;++p) cout<<(char)('i'+p)<<'='<<var[p]<<"; ";// tu wyświetlenie tych zmiennych
      cout<<endl;
      
      unsigned p=maxsize;
      while((p--)&&(++var[p]>=max[p])) var[p]=0;
      if(p>maxsize) break;
     }
   cin.sync(); cin.get();
   return 0;
  }
0

@Dragon, dziękuję

1 użytkowników online, w tym zalogowanych: 0, gości: 1