Ile krzeseł zmieści się pod stołem?
Ostatnio zmodyfikowano 2016-08-09 23:49
krolik5a Temat założony przez niniejszego użytkownika |
Ile krzeseł zmieści się pod stołem? » 2016-08-09 11:26:43 Witam, mam pytanie, czy mógłby mi ktoś pomóc? Mianowicie, mam takie zadanie (treść poniżej), aby program wyliczył ile krzeseł zmieści się pod stołem, napisałam coś takiego, ale jest to źle i nie wiem co jest źle. Bardzo proszę o pomoc. #include <iostream> using namespace std;
int main() { int A, B, K; cin >> A >> B >> K; if( A > K && B > K ) cout <<(( A / K + B / K ) * 2 ) - 4 << endl; else if( A == K && B > K ) cout << B / K << endl; else if( B == K && A > K ) cout << A / K << endl; else if( B < K || A > K ) cout << "0" << endl; else if( K == A && K == B ) cout << "1" << endl; }
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 ≤ 500000000) 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: 10 |
|
michal11 |
» 2016-08-09 11:58:46 Nie wiem w sumie co ten twój program robi bo jest dość nieczytelny ale wydaje mi się, że tu wystarczy wzór A / K + B / K - 4 plus ew. jakieś warunki specjalne. |
|
krolik5a Temat założony przez niniejszego użytkownika |
» 2016-08-09 14:01:26 No właśnie sam taki wzór nie wystarcza. |
|
The_Wert |
» 2016-08-09 14:23:19 Napisałem taki kod. Działa w wypadku wpisania wartości jak w przykładzie. Trochę chaotycznie, ale powinieneś się rozczytać;) #include<iostream>
int main() { using std::cout; using std::cin; int szerokosc, dlugosc, krzeslo; cout << "Podaj wymiary stolu, a nastepnie dlugosc boku krzesla: "; cin >> szerokosc >> dlugosc >> krzeslo; if( szerokosc > dlugosc ) { int temp; temp = szerokosc; szerokosc = dlugosc; dlugosc = temp; } if( krzeslo > szerokosc || dlugosc < krzeslo ) cout << 0; else if( dlugosc >= krzeslo * 2 ) { int pod_stolem = 0; szerokosc /= krzeslo; dlugosc -= krzeslo * 2; dlugosc /= krzeslo; if( szerokosc >= krzeslo * 2 ); dlugosc *= 2; szerokosc *= 2; pod_stolem = szerokosc + dlugosc; cout << pod_stolem; } else if( szerokosc >= krzeslo ) { int pod_stolem = 0; dlugosc /= krzeslo; szerokosc = 0; pod_stolem = dlugosc * 1; cout << pod_stolem; } cin.get(); return 0; }[ \c pp ] |
|
Piastlis |
» 2016-08-09 23:49:01 Rozłóż problem na kilka przypadków szczególnych: 1 jeżeli jeden z wymiarów stołu jest mniejszy niż K to nic się nie zmieści. 2 jeżeli mniejszy wymiar stołu >=K i <2K to zmieści się 1 szereg krzeseł. 3 ---------------------------- >=2K i <3K to 2 szeregi. 4 w pozostałych przypadkach krzesła będą po każdej stronie. |
|
« 1 » |