Să se determine toate triunghiurile diferite care au lungimea laturilor numere naturale şi perimetrul p (p se citeşte de la tastatură). 19

#include <iostream>

using namespace std;

int main() {

    int p;

    cout << „Introduceti perimetrul: „;

    cin >> p;

    cout << „Triunghiurile cu perimetrul ” << p << ” sunt: ” << endl;

    for (int a = 1; a <= p – 2; a++) {

        for (int b = 1; b <= p – a – 1; b++) {

            int c = p – a – b;

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

                cout << „(” << a << „, ” << b << „, ” << c << „)” << endl;

            }

        }

    }

    return 0;

}

Pentru a determina toate triunghiurile cu perimetrul p, putem folosi o triplă buclă for pentru a parcurge toate posibilele combinații de lungimi ale laturilor. Vom folosi următoarea logică:

  1. Primul for va parcurge lungimile pentru latura a, de la 1 la p-2 (deoarece cel puțin o altă latură trebuie să aibă o lungime mai mare de 1 și nu putem avea o latură cu lungimea egală cu p).
  2. Al doilea for va parcurge lungimile pentru latura b, de la 1 la p-a-1 (deoarece cel puțin o altă latură trebuie să aibă o lungime mai mare de 1 și nu putem avea o latură cu lungimea egală cu p sau cu a).
  3. Latura c, care este latura rămasă, va avea lungimea p-a-b.
  4. Dacă lungimile laturilor formează un triunghi valid (adunarea a oricăror două laturi este mai mare decât lungimea celei de-a treia), atunci afișăm triunghiul.

Observație: Pentru acest algoritm, există o redundanță în afișarea triunghiurilor, deoarece fiecare triunghi este afișat de trei ori (o dată pentru fiecare combinație de lungimi ale laturilor). Pentru a evita acest lucru, am putea introduce o condiție suplimentară pentru a afișa fiecare triunghi doar o dată, dar am ales să nu facem asta în acest exemplu deoarece algoritmul rămâne eficient și clar în această formă.

Similar Posts

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *