Informatică, întrebare adresată de Notme21, 8 ani în urmă

C++
Cerința
Se dau n numere naturale distincte. Determinaţi câte triunghiuri distincte pot avea lungimile laturilor printre aceste numere.
Date de intrare
Programul citește de la tastatură numărul n, iar apoi cele n numere naturale.
Date de ieșire
Programul va afișa pe ecran numărul C, reprezentând numărul de triunghiuri determinate.

Restricții și precizări
1<=n<=100
cele numere citite vor fi mai mici decât 1000000


Răspunsuri la întrebare

Răspuns de boiustef
2

Răspuns:

#include <iostream>

using namespace std;

int v[101];

int main()

{

   int n, a, b, c, k=0, i, j, z;

   cin >> n;

   for (i=1; i<=n; ++i) cin >> v[i];

   for (i=1; i<n-1; ++i)

   {

       for (j=i+1; j<n; ++j)

       {

           for (z=j+1; z<=n; ++z)

           {

               a=v[i]; b=v[j]; c=v[z];

               if (a>b) swap(a,b);

               if (b>c) swap(b,c);

               if (a+b>c) ++k;

           }

       }

   }

   cout << k;

   return 0;

}

Explicație:

Se foloseşte regula triunghiului că Suma a oricăror două laturi este mai mare ca latura a treia. Ca să evit multe verificări am ordonat crescător laturile

Alte întrebări interesante