URGENT!!! AM NEVOIE DE RASPUNS!!! NU COPIAT DE ALTUNDEVA!!! PLS !!!
Gigel, Cornel și Tibi sunt 3 amici care fac un traseu montan spre Vârful Toaca. Pentru a ajunge în vârf trebuie să urce o scară foarte lungă. Fiind obosiți, aceștia se hotărăsc să ia o pauză. Câte trepte libere sunt între cei trei când se opresc?
Date de intrare
Se citesc de la tastatură 3 valori întregi, a, b și c, corespunzătoare treptelor pe care se opresc cei 3 prieteni.
Date de ieșire
Programul va afișa pe ecran numărul X care reprezintă numărul de trepte libere dintre cei 3 prieteni.
Restricții și precizări
0 < a, b, c < 1 000
numerele sunt date într-o ordine oarecare, nu fac neapărat parte dintr-un șir crescător sau descrescător
Răspunsuri la întrebare
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
int a, b, c;
cin >> a >> b >> c;
//Determina valoarea minima si maxima
int minim = min(a, min(b, c));
int maxim = max(a, max(b, c));
//Calculeaza numar trepte libere
int libere = maxim - minim - 2;
cout << libere;
}
► Explicatie :
◘ Fie maxim trepata cea mai de sus pe care se afla unul din prieteni, minim treapta cea mai de jos pe care se afla unul din prieteni si mijloc treapta pe care se afla prietenul ramas.
Numarul de trepte libere intre maxim si mijloc este : maxim-mijloc-1
Numarul de trepte libere intre mijloc si minim este : mijloc-minim-1
Deci numarul de trepte dintre cei 3 prieteni libere este : maxim-mijloc-1 + mijloc-minim-1 = maxim - minim - 2
Deci nu e necesar sa determinam ce treapta este mijloc, avem novoie doar sa gasim minim si maxim.
◘ Am folosit doua functii :
- min(x,y), care returneaza numarul mai mic dintre cei doi parametrii pe care ii primeste functia. Putem determina minimul intre 3 elemente x,y,z determinand minimul dintre x si minimul dintre celelalte doua elemente.
- max(x,y), care returneaza numarul mai mare dintre cei doi parametrii pe care ii primeste functia. Similar putem imbrica mai multe apeluri pentru a calcula maximul intre 3,4,5, etc elemente.
10 7 12 3