👤

Cerința
Se dau lungimile laturilor unui triunghi ABC. Aflați lungimile medianelor duse din A,B si C.

Date de intrare
Programul citește de la tastatură numerele a,b,c, reprezentând lungimile laturilor AB,BC,AC.

Date de ieșire
Programul va afișa pe ecran trei numere, reprezentând lungimile celor 3 mediane, fiecare cu 2 zecimale exacte, fără rotunjire, daca triunghiul este valid, altfel se afiseaza mesajul Imposibil.

Restricții și precizări
1 ≤ a,b,c ≤ 1000
Exemplul 1:
Intrare

3 4 5
Ieșire

4.27 3.60 2.50
Exemplul 2:
Intrare

4 5 10
Ieșire

Imposibil

Salut! Va rog mult sa ma ajutati la aceasta problema. Este problema 3806 de pe pbinfo. Am incercat sa o rezolv, dar nu reusesc.


Răspuns :

Salut!

Ai rezolvarea in C++ mai jos

#include <iostream>

#include <cmath>

#include <iomanip>

using namespace std;

int main()

{

 /*

  * Teorema medianei:

  * MA = mediana trasa din punctul A pe latura BC

  * MA*MA = ( 2*(AB*AB+AC*AC) - BC*BC ) / 4

  *

  * Un triunghi exista daca:

  * AB+AC >= BC si AB+BC >= AC si BC+AC >= AB

  */

 double a, b, c, MA, MB, MC;

 // a = AB, b = BC, c = AC

 cin >> a >> b >> c;

 if (a + b >= c && a + c >= b && b + c >= a)

 {

   MA = sqrt((2 * (b * b + c * c) - a * a) / 4);

   MB = sqrt((2 * (a * a + c * c) - b * b) / 4);

   MC = sqrt((2 * (b * b + a * a) - c * c) / 4);

   

   //Fixes

   MA = (int)(MA * 100) / 100.0;

   MB = (int)(MB * 100) / 100.0;

   MC = (int)(MC * 100) / 100.0;

   cout << fixed << setprecision(2) << MA << " " << MB << " " << MC;

 }

 else

 {

   cout << "Imposibil";

 }

 return 0;

}

  • Ti-am atasat si fisierul mai jos
Vezi imaginea SERGETEC
Vă mulțumim că ați vizitat site-ul nostru dedicat Informatică. Sperăm că informațiile oferite v-au fost de ajutor. Dacă aveți întrebări sau nevoie de asistență suplimentară, nu ezitați să ne contactați. Ne vedem curând și nu uitați să ne adăugați la marcaje!


Go Studies: Alte intrebari