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

Zadanie C++ instrukcja warunkowa if

Konkurs Mistrz Programowania
0 głosów
801 wizyt
pytanie zadane 29 września 2021 w C i C++ przez polandonion Dyskutant (7,700 p.)
edycja 29 września 2021 przez polandonion

Cześć, mam problem z rozwiązaniem zadania, które powinno być zrobione z wykorzystaniem instrukcji warunkowej if (żadnych pętli, tablic, funkcji itd):


      Gra w szachy trafiła do Europy prawdopodobnie z Indii. Prostokątna szachownica o wymiarach 8 na 8 pól skład się z położonych na przemian pól białych i czarnych. Każdy gracz ma do dyspozycji 6 różnych typów bierek.

      My skupimy się na gońcu i nieco zmodyfikujemy planszę – będzie ona teraz miała wymiar N na N pól. Goniec może poruszać się po liniach ukośnych o dowolną liczbę pól. Twoim zadaniem jest obliczenie, ile pól kontroluje goniec umieszczony na określonej pozycji na planszy.


Wejście

      Pierwszy wiersz zawiera trzy liczby naturalne N, K oraz W (2 ≤ K, W ≤ N ≤ 1000), odpowiednio rozmiar planszy oraz oznaczenie pola, na którym znajduje się goniec – numery kolumny oraz wiersza.


Wyjście

      Jedna liczba całkowita – liczba pól , które mogą być kontrolowane przez gońca.


Przykład

Dla danych wejściowych:

9 3 2

poprawną odpowiedzią jest: 10

komentarz 29 września 2021 przez TOM_CPP Pasjonat (22,640 p.)

Mam nadzieję, że zmiennych można także używać, bo sama instrukcja warunkowa if to trochę za mało.

komentarz 29 września 2021 przez polandonion Dyskutant (7,700 p.)
oczywiście, że zmiennych można używać, ale chodzi o to, że żadnych pętli, tablic, funkcji itd

1 odpowiedź

+3 głosów
odpowiedź 29 września 2021 przez TOM_CPP Pasjonat (22,640 p.)
wybrane 25 czerwca 2022 przez polandonion
 
Najlepsza

Przykład z użyciem std::min

#include <iostream>
#include <algorithm> 

using namespace std;

struct Position { int x {}, y {}; };

int calculateControlFields( Position pos , int size )
{
    return min( size - pos.x , size - pos.y ) +  min( pos.x - 1 , size - pos.y ) 
           + min( pos.x - 1 , pos.y - 1 ) +  min( size - pos.x ,  pos.y - 1 );
}

int main()
{  
   cout << calculateControlFields( {3,2} , 9 ) << endl;
}

Teraz wystarczy pozbyć się funkcji i zamienić std::min na wyrażenie z instrukcją if ... else

Podobne pytania

+1 głos
1 odpowiedź 718 wizyt
pytanie zadane 30 września 2021 w JavaScript przez Doge Gaduła (3,420 p.)
0 głosów
2 odpowiedzi 389 wizyt
pytanie zadane 3 kwietnia 2016 w C i C++ przez DragonCoder Nałogowiec (36,500 p.)
0 głosów
2 odpowiedzi 913 wizyt
pytanie zadane 20 października 2019 w C i C++ przez mayweather Nowicjusz (150 p.)

93,656 zapytań

142,577 odpowiedzi

323,100 komentarzy

63,174 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

Kursy INF.02 i INF.03
...