👤



Sa se construiască o funcție ce are ca parametru un nr întreg și întoarce ca rezultat suma cifrelor distincte din număr (n=1,2,1,2,5-> s=1+2+5)


se citeste un sir de n numere sa se construiasca un al doilea sir ce va contine suma cifrelor fistincte pt fiecare nr din primul sir doar daca suma este un nr impar.


Răspuns :

Program C++:

#include <iostream>

using namespace std;

int sumaCifDist(int n) {

   int cifre[10] = {0};

   while (n != 0) {

       cifre[n % 10]++;

       n /= 10;

   }

   int suma = 0;

   for (int i = 0; i < 10; i++)

       if (cifre[i])

           suma += i;

   return suma;

}

int main() {

   int n;

   int sir1[1000], sir2[1000];

   cin >> n;

   int cnt = 0;

   for (int i = 0; i < n; i++) {

       cin >> sir1[i];

       if (sumaCifDist(sir1[i]) % 2 == 1) {

           sir2[cnt] = sumaCifDist(sir1[i]);

           cnt++;

       }

   }

   for (int i = 0; i < cnt; i++)

       cout << sir2[i] << " ";

   return 0;

}