👤

Pe o linie orizontală se găsesc n greieri. Ei încep să stea „capră” într-o ordine prestabilită începând cu ultimul, pe rând, până la primul. Toţi greierii care îl preced pe cel care stă „capră” sar peste acesta, în ordine. De exemplu pentru n=4, mai întâi stă „capră” greierul 4 și peste el sar, în ordine, 3, 2 și 1. Apoi stă „capră” greierul 3 și sar peste el, în ordine, 2, 1 și 4. Apoi stă „capră” greierul 2 și peste el sar, în ordine, 1, 3 și 4. Apoi stă „capră” greierul 1 și sar peste el, în ordine, 4 , 3 și 2, și se revine la ordinea inițială.
Scrieți un program care citește numerele naturale n și m și determină:

a) De câte sărituri este nevoie pentru a se ajunge la ordinea inițială?
b) Cum vor fi așezați greierii după m sărituri?


Răspuns :

a) n sarituri, evident

b)

#include <iostream>

using namespace std;

int main()

{

int n, m, greieri[100] = {0};

cin >> n >> m;

for (int i = 0; i < n; ++i)

{

 greieri[i] = i + 1;

}

for (int i = 0; i < n; ++i)

{

 cout << greieri[i] << " ";

}

cout << endl;

for (int i = n - m; i < n; ++i)

{

 int temp = greieri[n - 1];

 for (int j = n - 1; j > 0; --j)

 {

  greieri[j] = greieri[j - 1];

 }

 greieri[0] = temp;

 for (int k = 0; k < n; ++k)

 {

  cout << greieri[k] << " ";

 }

 cout << endl;

}

}

Vă mulțumim că ați ales să vizitați platforma noastră dedicată Informatică. Sperăm că informațiile disponibile v-au fost utile. Dacă aveți întrebări suplimentare sau aveți nevoie de sprijin, nu ezitați să ne contactați. Vă așteptăm cu drag și data viitoare! Nu uitați să adăugați site-ul nostru la favorite pentru acces rapid.


Wix Learning: Alte intrebari