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

Cerinţa
Se dă un vector cu n numere naturale. Să se determine câte dintre perechile de elemente din vector au același număr de cifre.

Date de intrare
Programul citește de la tastatură numărul n, iar apoi n numere naturale, separate prin spaţii, reprezentând elementele vectorului.

Date de ieşire
Programul afișează pe ecran numărul c, reprezentând valoarea cerută.

Restricţii şi precizări
1 ≤ n ≤ 100000
elementele vectorului vor fi cuprinse între 0 și 1000000000


Exemplu
Intrare

6
13 3 8 700 9 25
Ieșire

4
Explicație
Perechile de elemente cu același număr de cifre sunt:
3 8 – cu câte o cifră
3 9 – cu câte o cifră
8 9 – cu câte o cifră
13 25 – cu câte 2 cifre

Răspunsuri la întrebare

Răspuns de Sergetec
2

Salut!

Ai rezolvarea in C++ mai jos

#include <iostream>

using namespace std;

const int N = 100000;

int f[11], n, a[N + 1], nrCif;

long long cnt;

int main() {

   cin >> n;

   for (int i = 1; i <= n; ++i) {

       nrCif = 0;

       cin >> a[i];

       if (a[i] < 10) {

           nrCif = 1;

       }

       else {

           while (a[i]) {

               nrCif++;

               a[i] /= 10;

           }

       }

       f[nrCif]++;

   }

   for (int i = 1; i <= 10; ++i) {

       cnt += 1LL*f[i]*(f[i] - 1)/2;

   }

   cout << cnt;

   return 0;

}

Alte întrebări interesante