Kolejka i wstawianie do niej wartości

0

Witam, próbuje napisać kawałek programu który wrzuci mi zadaną wartość do kolejki podzieloną na części, mianowicie mam zrobioną kolejkę i wstawiam do niej po kolei dane funkcją push, jednak załóżmy że chce mieć w niej tylko wartości mniejsze od 10, gdy będę próbować do niej wstawić wartość większą to mam podzielić ją na kawałki, np chce wstawić 24, 24>10 więc dziele na dwie 12, dalej są większe więc muszę podzielić obie jeszcze raz, wychodzą cztery 6, więc wstawiam je wszystkie.
Zrobiłem to w if'ie tzn(if wartosc>10) stwórz dwie nowe i wrzuć pushem , ale on dzieli tylko raz i wtedy wstawia, chce dzielić do skutku, dopóki się nie zmieszczą, tych liczb może być nawet 100, aby były mniejsze od tej 10, myślałem żeby może robić tablice na te liczby i później wstawiać, a dzielić w while'u, ktoś zna jakiś łatwy sposób żeby to działało poprawnie?

0

W pętli - po każdym cięciu wkładasz co możesz do kolejki.
Żadnych tablic, ni nic, a kodu na 3 linijki.

0
spartanPAGE napisał(a):

W pętli - po każdym cięciu wkładasz co możesz do kolejki.
Żadnych tablic, ni nic, a kodu na 3 linijki.

Ale jak dla tego przykładu mi podzieli w pętli to wrzuci te dwunastki a później 6, a ma wrzucić same 6

0

Nie. Użyj głowy.

  • Krój za pomocą modulo.
0
void wrzuc_do_kolejki(kolejka &k,int v)
  {
   if(v<10) k.push_back(v);
   else
     {
      int h=v>>1;
      wrzuc_do_kolejki(k,h);
      wrzuc_do_kolejki(k,v-h);
     }
  }

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