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

Zadanie C++ instrukcja warunkowa if

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
0 głosów
731 wizyt
pytanie zadane 29 września 2021 w C i C++ przez polandonion Dyskutant (7,630 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,630 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ź 611 wizyt
pytanie zadane 30 września 2021 w JavaScript przez Doge Gaduła (3,420 p.)
0 głosów
2 odpowiedzi 333 wizyt
pytanie zadane 3 kwietnia 2016 w C i C++ przez DragonCoder Nałogowiec (36,500 p.)
0 głosów
2 odpowiedzi 859 wizyt
pytanie zadane 20 października 2019 w C i C++ przez mayweather Nowicjusz (150 p.)

93,444 zapytań

142,436 odpowiedzi

322,698 komentarzy

62,806 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

...