Răspuns :
Rezolvarea in C++
#include <iostream>
using namespace std;
int main() {
int x, a, b, km = 0, zile = 0;
cout << "Introdu numarul de kilometri: ";
cin >> x;
cout << "Introdu numarul de kilometri parcursi de Fat Frumos intr-o zi: ";
cin >> a;
cout << "Introdu numarul de kilometri cu care il da in spate zana cea rea: ";
cin >> b;
while (km < x) {
km += a;
zile++;
if (km >= x) {
break;
}
km -= b;
}
cout << zile;
return 0;
}
Explicatie
- Dupa citirea datelor, vom avea un while loop care merge pana cand km este mai mare sau egal cu x.
- Dupa ce incrementam numarul de km parcursi cu a, vom incrementa numarul de zile, iar apoi vom verifica daca Fat Frumos a ajuns la destinatie.
- Daca a ajuns, atunci vom inceta while loop-ul, deoarece a ajuns la destinatie, iar zana cea rea nu il poate trage inapoi noaptea.
- Daca nu, atunci zana cea rea la va trage inapoi noaptea, adica km - b si vom repeta acest proces pana cand ajungem la destinatie.
- In final afisam numarul de zile calculate.
citeste x
citeste a
citeste b
zi ← 1
parcurs ← 0
┌cat timp parcurs + a < x executa
│ parcurs ← parcurs + a - b
│ zi ← zi + 1
└■
scrie zi
=======================
Ne oprim daca lungimea parcursa pana in prezent (parcurs) adunat cu lungimea parcursa in ziua respectiva (a) e mai mare sau egala cu lungimea totala a drumului (x).
Exemplu:
Daca x=4, a=3, b=2 atunci raspunsul ar trebui sa fie 2 (prima zi se duce la 3 km, se intoarce noaptea la 1 km, a doua zi ajunge la 4 km - deci ajunge la Ileana)
Data viitoare precizeaza limbajul de programare
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.