. Se citesc n numere de la tastatură. Să se calculeze suma numerelor care au suma cifrelor un număr par.
2. Se citesc n numere de la tastatură. Să se calculeze suma numerelor care au k cifre, unde k este un număr natural care se citește de la tastatură.
3. Se citesc de la tastatură numere naturale până la întâlnirea lui 0. Să se afișeze câte numere au suma cifrelor cuprinsă în intervalul [a,b], unde a și b se citesc de la tastatură.
Răspunsuri la întrebare
Răspuns:
1.
#include <iostream>
using namespace std;
int s, sum_cif;
int main()
{
int n; cin >> n;
for(int i = 1; i <= n; i++)
{
sum_cif = 0;
int x; cin >> x;
int aux = x;
while(aux)
{
sum_cif += aux % 10;
aux /= 10;
}
if(sum_cif % 2 == 0)
s += x;
}
cout << s;
}
Explicație:
Descompun fiecare numar in cifre si fac suma lor. In final, daca suma cifrelor este un numar par (adica daca sum_cif % 2 == 0), adaug numarul respectiv la suma.
2.
#include <iostream>
using namespace std;
int cnt, s;
int main()
{
int n; cin >> n;
int k; cin >> k;
for(int i = 1; i <= n; i++)
{
cnt = 0;
int x; cin >> x;
int aux = x;
while(aux)
{
cnt++;
aux /= 10;
}
if(cnt == k)
s += x;
}
cout << s;
return 0;
}
Explicație:
Citesc un n si un k si apoi n numere (k-ul se citeste inaintea sirului!)
Descompun fiecare numar in cifre, crescand contorul de cifre cu o unitate de fiecare data cand numarul respectiv intra in while.
Daca contorul este egal cu k (cnt == k), atunci adaug numarul respectiv la suma.
3.
#include <iostream>
using namespace std;
int sum_cif, cnt;
int main()
{
int x;
int a, b; cin >> a >> b;
do
{
cin >> x;
int aux = x;
sum_cif = 0;
while(aux)
{
sum_cif += aux % 10;
aux /= 10;
}
if(sum_cif >= a && sum_cif <= b)
cnt++;
} while (x != 0);
cout << cnt;
return 0;
}
Explicație:
Am folosit structura repetitiva do...while pentru a citi numere pana la intalnirea lui 0 (citesc cat timp x != 0)
Am folosit iar descompunerea numarului in cifre, urmand sa fac suma acestora. Daca suma respectiva este in intervalul [a, b], atunci cresc contorul cu o unitate.
La final, afisez contorul, reprezentand cate numere au suma cifrelor cuprinsa in acel interval.
a si b se citesc inaintea numerelor!