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

Cerinţa
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.

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

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

Restricţii şi precizări
1 ≤ n ≤ 100
elementele şirului sunt numere naturale nenule cu cel mul 9 cifre

Răspunsuri la întrebare

Răspuns de netuioanaralucpb3570
1

Răspuns:

#include <iostream>

using namespace std;

int nr_cif(int n)

{

int nr=0;

 while(n)

 { nr++;

  n=n/10;

 }

   return nr;

}

int toate_egale_divImp(int v[], int i, int s) {

   if (i == s) {

       if (nr_cif(v[i])%2==0)   return 1;

       return 0;

   }

   int d1 = toate_egale_divImp(v, i, (i + s) / 2);

   int d2 = toate_egale_divImp(v, (i + s) / 2 + 1, s);

   return d1 + d2;

}

int main()

{

  int n, v[501],i;

  cin>>n;

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

  if(toate_egale_divImp(v,1,n)==n)

       cout<<"DA";

   else

       cout<<"NU";

   return 0;

}

Explicație:

pbinfo 100 p, problema 1153

Alte întrebări interesante