• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Zadanie dla początkujących. Ilość krzeseł które można umieścić przy stole.

Object Storage Arubacloud
0 głosów
2,248 wizyt
pytanie zadane 27 września 2016 w C i C++ przez Kenzi Nowicjusz (200 p.)
edycja 27 września 2016 przez Kenzi

Dodałem komentarze co robię. Nie wiem co jest źle, wyskakują mi cyfry kosmiczne. Oto zadanie:

 Bajtazar kupuje meble przez Internet. Znalazł już ładny stół i zestaw krzeseł. Teraz zastanawia się, ile krzeseł może kupić, tak aby wszystkie zmieściły się przy stole. Stół ma prostokątny blat o wymiarach A × B centymetrów. Z kolei siedzisko krzesła, patrząc z góry, to kwadrat o wymiarach K × K centymetrów. Dalej będziemy traktować stół jako prostokąt, a krzesła – jako kwadraty. Nad jednym z brzegów siedziska (kwadratu) znajduje się oparcie. Każde krzesło należy ustawić oparciem przy stole, tzn. brzeg z oparciem powinien pokrywać się z pewnym brzegiem stołu. Ponadto siedzisko powinno w całości znajdować się pod blatem. Oczywiście żadne dwa krzesła nie mogą na siebie nachodzić. W naszych rozważaniach pomijamy nogi od stołu (możemy założyć, że są nieskończenie cienkie i znajdują się w rogach blatu). Ile krzeseł zmieści się pod stołem?  

Wejście W jedynym wierszu wejścia znajdują się trzy liczby całkowite A, B i K (1 ≤ A, B, K ≤ 500 000 000) oddzielone pojedynczymi odstępami, oznaczające, odpowiednio, wymiary blatu stołu oraz wymiar siedziska krzesła.  

Wyjście Twój program powinien wypisać na wyjście maksymalną liczbę krzeseł, które zmieszczą się przy stole. Przykłady Dla danych wejściowych: 15 18 4 poprawnym wynikiem jest: 

Oto mój kod. 

#include <iostream>

using namespace std;

int main()
{
   int a,b,k,a1,b1,calosc;
   cin>>a,b,k;
   if(b>=k) //sprawdzam czy bok b jest większy/równy od krawędzi krzesła// 
   {
       a1=a/k;  //dzielę bok a na długość krawędzi krzesła// 
   }
   if(b>=2*k) //jeśli przy krawędzi b zmieściły by się dwa krzesła to przy krawędzi a można ustawiać jakiekolwiek krzesłą//
   {
      a1=a*2;
   }
   if(b>=3*k)   //sprawdzam czy przy krawędzi b można ustawić krzesła. Nie chce aby się na siebie "nachodziły" więc żeby ustawić je przy tej krawędzi musi być 
                //miejsca conajmniej na 3 krzesłą, odejmuję dwa 
   {
       b1=b-(2*k);
       b=b/k;
       b1=b*2;
   }
   else //Jeśli powyższe warunki nie są spełnione to liczba krzeseł musi wynosić dwa. 
   {
       cout<<"0";
   }
   calosc=a1+b1;
   cout<<calosc;

    return 0;
}

 

komentarz 27 września 2016 przez DragonCoder Nałogowiec (36,500 p.)
Pozal sie Panie Boze.... Dodaj do tych if else czyli if, else if, else if, else if ina na koncu else...

Nazywaj te zmienne po ludzku..

Strona do zadania nie dziala
komentarz 27 września 2016 przez Kenzi Nowicjusz (200 p.)
Co jest nie ludzkiego w zmiennych? Dopiero się uczę podstaw więc proszę o wyrozumiałość. Edytowane pytanie.
komentarz 27 września 2016 przez Patrycjerz Mędrzec (192,320 p.)
krrr123, problemem był biały znak na końcu linka - bez niego wszystko działało jak należy.
komentarz 27 września 2016 przez Ehlert Ekspert (212,670 p.)

Rada na x lat bycia programistą. Skoro zmienna reprezentuje wartość będącą długością krawędzi to czemu by nie nazwać ją edge lub z dwojga złego krawedz?

komentarz 27 września 2016 przez Kenzi Nowicjusz (200 p.)
Zadanie wymaga aby było to "k", na wejściu mają być trzy zmienne/cyfry. a,b,k
1
komentarz 27 września 2016 przez Ehlert Ekspert (212,670 p.)

użyli bo musieli oznaczyć jakoś wartość i przedział. Równie dobrze mogłoby być ó. Twój program to Twój świat i Twoje kredki. 

komentarz 28 września 2016 przez Ehlert Ekspert (212,670 p.)

To jest SPOJ no

2 odpowiedzi

+1 głos
odpowiedź 27 września 2016 przez Patrycjerz Mędrzec (192,320 p.)
Kod jest mocno zagmatwany i trudno się do czegokolwiek odnieść. Komentarze zaś jedynie podkreślają, że nie rozumiesz w pełni problemu.

Radzę jeszcze raz przemyśleć algorytm do zadania, gdyż nie jest on wyszukany - raptem parę linijek. Mi po paru minutach udało się bez przeszkód go napisać, wystarczyło poświęcić trochę czasu i się mocno skupić.
komentarz 27 września 2016 przez Kenzi Nowicjusz (200 p.)
Ja już nie mam pomysłu jak mógłbym go zrobić na inny sposób. Może nie rozumiem problemu i dlatego proszę o jakąś wskazówkę w jaki sposób mam rozumować :)
komentarz 27 września 2016 przez Patrycjerz Mędrzec (192,320 p.)

Spróbuj się przespać z problemem. Myśl aż do skutku i się nie zniechęcaj. Podziel problem na parę mniejszych i na początku miej gdzieś optymalizację - takie rzeczy poprawia się później.

Tak czy siak, życzę powodzenia wink

0 głosów
odpowiedź 28 września 2016 przez niezalogowany
edycja 28 września 2016

Po 1. Tego zadania nie musisz robić na warunkach.

Po 2. Spróbuj to sobie rozrysować na kartce i zacząć od tego ile max krzeseł mieści się przy jednym z boków (np. boku a). Pomnóż to razy 2, bo są dwa takie same boki i oznacz to jako bok1.

Po 3. Odejmij od boku podwojone i podziel to przez k. Następnie wynik pomnóż to przez 2 (bok2).

Po 4. Dodaj do siebie bok1 i bok2.

Podobne pytania

0 głosów
1 odpowiedź 2,395 wizyt
pytanie zadane 7 października 2016 w C i C++ przez niezalogowany
+2 głosów
2 odpowiedzi 300 wizyt
pytanie zadane 7 marca 2022 w Java przez ArtuJarosz Nowicjusz (140 p.)

92,539 zapytań

141,382 odpowiedzi

319,476 komentarzy

61,928 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...