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 pentru vizita pe site-ul nostru dedicat Informatică. Sperăm că informațiile oferite v-au fost de ajutor. Nu ezitați să ne contactați pentru orice întrebare sau dacă aveți nevoie de asistență suplimentară. Vă așteptăm cu drag data viitoare și nu uitați să ne adăugați la favorite!