Jak to zrobić w c++?

Zaopatrzeniowiec dostaje listę zakupów. Chce przewieźć minimalną liczbę opakowań towarów, ale tak, by nie przekroczyć udźwigu x kg i mieć załadowany samochód. Zdefiniuj funkcję zakupy(int x), której parametrem jest udźwig, a wynikiem – łączna liczba opakowań towarów. Worki cukru ważą 2 kg, mąki 5 kg i ziemniaków 12 kg. Sprawdź działanie funkcji dla podanych poniżej parametrów.

Wynikiem funkcji zakupy(127) jest 12.
Wynikiem funkcji zakupy(100) jest 10.


Odpowiedź :

Odpowiedź:

int zakupy(int kg)

{

   int opakowania = 0;

   if (kg%2 == 1 && kg > 4)

   {

       opakowania++;

       kg -= 5;

   }

   if (kg/12 > 0)

   {

       opakowania += kg/12;

       kg %= 12;

   }

   if (kg%5 == 0)

   {

       opakowania += kg/5;

       return opakowania;

   }

   else

   {

       if ((kg%5)%2 == 0)

       {

           opakowania += kg/5;

           kg %= 5;

       }

       else

       {

           opakowania += (kg/5-1);

           kg = kg%5+5;

       }

   }

   if (kg > 1)

   {

       opakowania += kg/2;

   }

   return opakowania;

}

Wyjaśnienie:

Poprawiłem teraz chyba jest dobrze bo dla 11 zwraca 2 i przy wiekszych kg zajmuje mniej czasu