👤

Se citesc n numere naturale de maxim 9 cifre. Pentru fiecare număr citit, să se calculeze cifra maximă
și cifra minimă, precum și numărul lor de apariții. Dacă toate cifrele sunt identice, se va afișa mesajul
“CIFRE EGALE “.
Exemplu: pentru n=3, dacă se citesc numerele
5347372 se va afișa cifra maxima 7 numar de aparitii 2, cifra minima 2 numar de aparitii 1
22222 se va afișa cifre egale
646464 se va afișa cifra maxima 6 numar de aparitii 3, cifra minima 4 numar de aparitii 3


Răspuns :

#include <iostream>

#include <vector>

void diag(const std::string& str) {

char min = str[0], max = str[0];

size_t min_cnt = 1, max_cnt = 1;

for (size_t i = 1; i < str.size(); ++i) {

 if (str[i] < min) {

  min = str[i];

  min_cnt = 1;

 }

 else if (str[i] == min)

  ++min_cnt;

 

 if (str[i] > max) {

  max = str[i];

  max_cnt = 1;

 }

 else if (str[i] == max)

  ++max_cnt;

}

if (max == min)

 std::cout << "CIFRE EGALE\n";

else

 std::cout

 << "Cifra maxima: " << max << " Numar de aparitii: " << max_cnt

 << " Cifra minima: " << min << " Numar de aparitii: " << min_cnt << '\n';

}

int main() {

size_t i, n;

std::cin >> n;

std::vector<std::string> vec(n);

for (i = 0; i < n; ++i)

 std::cin >> vec[i];

 

for (i = 0; i < n; ++i)

 diag(vec[i]);

}