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

Un număr y este numit frate mai mare al unui număr x dacă x și y au același număr de cifre și fiecare cifră
a lui y se poate obține din cifra aflată pe aceeași poziție în x adunând la aceasta valoarea 1.
Subprogramul frate are doi parametri:
• x, prin care primește un număr natural (x[0,109]);
• y, prin care furnizează fratele mai mare al lui x, sau -1, dacă nu se poate obține un astfel de număr.
Scrieți definiția completă a subprogramului.
Exemplu: dacă x=1027, după apel y=2138, iar dacă x=9027, după apel y=-1.

Răspunsuri la întrebare

Răspuns de veector
8

Răspuns:

void frate(int x,int &y)

{

   int a[11],k=0,nrnou=0,ok=1;

   while(x)

   {

       a[k]=x%10+1;

       if( a[k]>=9 )

           ok=0;

       x=x/10;

       k++;

   }

   if(ok==0) y=-1;

   else {

           int p=1;

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

               {

                   nrnou=nrnou+a[i]*p;

                   p=p*10;

               }

           y=nrnou;

        }

}

+ main

int x,y=0;

   cin>>x;

   frate(x,y);

   cout<<y;

   return 0;

Explicație: Cred ca asa e bine , am stat ceva pe ea :)

Alte întrebări interesante