Informatică, întrebare adresată de siffappuro8842, 9 ani în urmă

Se dă un şir cu n elemente, numere naturale. Folosind metoda Divide et Impera să se verifice dacă toate elementele şirului au număr par de cifre.

Programul citește de la tastatură numărul n, iar apoi cele n elemente ale şirului, separate prin spaţii.

Programul afișează pe ecran mesajul DA, dacă toate elementele şirului au număr par de cifre, respectiv NU în caz contrar.

1 ≤ n ≤ 100
elementele şirului sunt numere naturale nenule cu cel mul 9 cifre

Răspunsuri la întrebare

Răspuns de Razzvy
9
#include <iostream>
using namespace std;

int a[100];

bool par_cif(int x)

   int n = 0;
   while(x)
   {
        n++;
        x /= 10;
   }
  
   return !(n % 2);
}

bool sir_par_cif(int st, int dr)
{
     if(st == dr)
     {
         return par_cif(a[st]);
     }
 
     int m = (st + dr) / 2;
    
     return sir_par_cif(st, m) && sir_par_cif(m + 1, dr);
}

int main()
{
     int n;
     cin>>n;
     for(int i = 0; i < n; i++)
         cin>>a[i];

     if(sir_par_cif(0, n - 1))
           cout<<"DA";
     else
           cout<<"NU";
}
Alte întrebări interesante