Informatică, întrebare adresată de geocaruoxxbvq, 9 ani în urmă

Cerința
Un număr natural este numit echilibrat dacă suma cifrelor sale de pe poziții pare este un număr par, iar suma cifrelor sale de pe poziții impare este un număr impar. Pozițiile cifrelor sunt numerotate de la dreapta la stânga, astfel: cifra unităților este pe poziția 0, cifra zecilor este pe poziția 1 ș.a.m.d.

Subprogramul echilibrat are un singur parametru, n, prin care primește un număr natural (n∈[10,109]). Subprogramul returnează valoarea 1 dacă n este echilibrat sau valoarea 0 în caz contrar.

Scrieți definiţia completă a subprogramului.




Exemplu
Dacă n=25163912, subprogramul returnează valoarea 1, iar dacă n=11211, subprogramul returnează valoarea 0.

Important
Soluția propusă va conține definiția subprogramului cerut. Prezența în soluție a altor instrucțiuni poate duce erori de compilare sau de execuție care vor avea ca efect depunctarea soluției.

Răspunsuri la întrebare

Răspuns de aggologan1999paihov
3

#include <iostream>

using namespace std;

int echilibrat(unsigned long n)

{

   int suma_pare=0,suma_impare=0,i,v[n],k=0,nr=0;

   while(n)

   {

       v[k]=n%10;

       k++;

       n/=10;

   }

   for(i=k-1;i>-1;--i)

   {

       if(nr%2==0 || nr==0)

       {

           suma_impare+=v[i];

           ++nr;

       }

       else

       {

           suma_pare+=v[i];

           ++nr;

       }

   }

   if(suma_impare%2==1 && suma_pare%2==0)

   return 1;

   return 0;

}

int main()

{

   unsigned long n;

   cout<<"Introduceti numarul dorit: ";

   cin>>n;

   if(echilibrat(n)==1)

       cout<<"da";

   else cout<<"nu";

   return 0;

}

Alte întrebări interesante