Răspuns :
Răspuns:
#include <iostream>
using namespace std;
int main()
{
int n, p = 0, i = 0;
cin >> n;
int v[n];
for(int j = 0 ; j < n ; j++ )
{
cin >> v[j];
int copie = v[j];
while( copie != 0 )
{
int cifra = copie % 10;
if ( cifra % 2 == 0 )
p++;
else
i++;
copie = copie / 10;
}
}
cout << p << " " << i;
}
Explicație:
Citesti n
Pentru fiecare numar citit se copiaza valoarea in variabila "copie". Prin algoritmul de determinare a cifrelor unui numar verificam daca ultima cifra a numarului curent este para sau impara. In caz de paritate crestem cu o unitate variabila p, in caz contrar crestem variabila i.
p -> cifre pare
i -> cifre impare
Algoritmul de cifre functioneaza astfel
Ai numarul n = 123
Verifici while( n != 0 ) ( 123 != 0 ) TRUE
{
cifra = n % 10 = 123 % 10 = 3
n = n / 10 = 123 / 10 = 12
}
Am aflat ca numarul n are cifra 3
Reluam secventa while( n != 0 ) ( 12 != 0 ) TRUE
{
cifra = n % 10 = 12 % 10 = 2
n = n / 10 = 12 / 10 = 1
}
Am aflat ca numarul n are si cifra 2
Reluam secventa while ( n != 0 ) ( 1 != 0 ) TRUE
{
cifra = n % 10 = 1 % 10 = 1
n = n / 10 = 1 / 10 = 0
}
Am aflat ca numarul n are si cifra 1
Reluam secventa while ( n != 0 ) ( 0 = 0 ) FALS
Nu se executa instructiuni executa secventa urmatoare
In cadrul acestui algoritm tu poti face si alte operatii cu cifrele rezultate sau cu numarul obtinut prin taierea ultimei cifre.. sunt o multime de cazuri si probleme
Succes!