👤
a fost răspuns

Se citeste un numar natural n care are cel putin 3 cifre. Determinati toate numerele echilbrate mai mici sau egale decat n. Un numar este considerat echilibrat daca numarul cifrelor impare din componenta este egal cu numarul cifrelor pare din componenta.

Răspuns :

Daca vrei sa verifici daca DOAR un numar este echilibrat foloseste codul acesta:
#include <iostream>
using namespace std;

int par=0,impar=0;
long int n;
int main()
{
         cin>>n;
         while(n>99)
         {
                  ok=1;
                  if((n%10)%2==0) 
                          par++;
                  else
                           impar++;
                  n=n/10; 
        }
         if(ok==0)
                  cout<<"Numar incorect !";         
         else if(impar==par)
                  cout<<"Numar echilibrat";
         else if(impar != par )
                  cout<<"Nu este echilibrat";
}

Iar pentru toate numerele mai mici sau egale ca n este asta:
Vezi imaginea Andriesboss92
#include <iostream>
using namespace std;
int echilibrat(int n)
{
    int nri=0,nrp=0;
    while(n!=0)
    {
        if(n%10%2==0)
            nrp++;
        if(n%10%2==1)
            nri++;
        n=n/10;
    }
    if(nri==nrp)
        return 1;
    return 0;
}int main()
{
    int n,i;
    cout<<"n=";cin>>n;
    for(i=0;i<=n;i++)
        if(echilibrat(i)==1)
        cout<<i<<" ";
    return 0;
}