Cerința
Se dau n numere naturale. Determinaţi câte cifre pare şi câte cifre impare se află în total în cele n numere.
Date de intrare
Programul citește de la tastatură numărul n, iar apoi n numere naturale, separate prin spații.
Date de ieșire
Programul va afișa pe ecran numerele p, şi i, separate prin spaţiu, în această ordine, reprezentând numărul de cifre pare respectiv numărul de cifre impare calculate.
Restricții și precizări
1 ≤ n ≤ 10
cele n numere citite vor fi mai mici decât 1.000.000.000
Exemplu
Intrare
3
11 30 3
Ieșire
1 4
VA ROG E URGENT
Răspunsuri la întrebare
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!