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

Zadanie C++ instrukcja warunkowa if

Object Storage Arubacloud
0 głosów
404 wizyt
pytanie zadane 29 września 2021 w C i C++ przez polandonion Mądrala (7,040 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 Mądrala (7,040 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ź 318 wizyt
pytanie zadane 30 września 2021 w JavaScript przez Doge Gaduła (3,370 p.)
0 głosów
2 odpowiedzi 192 wizyt
pytanie zadane 3 kwietnia 2016 w C i C++ przez DragonCoder Nałogowiec (36,500 p.)
0 głosów
2 odpowiedzi 628 wizyt
pytanie zadane 20 października 2019 w C i C++ przez mayweather Nowicjusz (150 p.)

92,550 zapytań

141,394 odpowiedzi

319,522 komentarzy

61,935 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!

...