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

Cerinţa

Se citește un număr natural n. Să se determine suma cifrelor aflate pe poziții impare. Numărarea pozițiilor în numărul dat se face începând de la prima cifră.

Date de intrare

Programul citește de la tastatură numărul n

Date de ieşire

Programul afișează pe ecran numărul S, reprezentând suma cerută.

Restricţii şi precizări

1 ≤ n ≤ 1.000.000.000


Exemplu

Date de intrare
9712654
Date de ieșire
20

Explicație

S-au adunat cifrele 9 1 6 4.


Pe poza am programul incercat doar ca imi da doar 40 de puncte, de ce? ce mai trebuie facut, as vrea ajutor ​

Anexe:

boiustef: frumoas[ idee, dar e valabil[ numai pentru numerele formate de un num[r impar de cifre, dar ce face cu numerele de forma 4563, ca exemplu... codul tau va aduna 3+5

Răspunsuri la întrebare

Răspuns de boiustef
4

Răspuns:

#include <iostream>

using namespace std;

int main()

{

   int n, nrcif=0, s1=0, s2=0, S, cif;

   cin >> n;

   while (n)

   {

       cif=n%10; ++nrcif; n/=10;

       if (nrcif%2) s1+=cif;

       else s2+=cif;

   }

   if (nrcif%2) S=s1;

   else S=s2;

   cout << S << endl;

   return 0;

}

Explicație:

trebuie să faci două sume şi tot odată să contorizezi cîte cifre are numărul

Dacă n=2356, atunci s1=6+3, s2=5+2. Deoarece numărul de cifre =4 vom considera ca rezultat s2


uionutalin: Mulțumesc mult!
boiustef: :))), cu plăcere
Alte întrebări interesante