👤

Algoritmul de mai jos este reprezentat în pseudocod. S-a notat cu a%b restul împărţirii numărului natural a la numărul natural nenul b, și cu [c] partea întreagă a numărului real c.

citeşte x (număr natural)
p←1; m← -1
┌ cât timp p≤x execută
│ c←[x/p]%10
│┌ dacă c>m atunci
││ m←c; p←p*10
││ altfel
││ x←[x/(p*10)]*p+x%p
│└■
└■
┌ dacă m≥0 atunci scrie x
│ altfel scrie "nul"
└■
Scrieți ce se afișează în urma executării algoritmului, dacă se citește numărul 6907512.


Răspuns :

Răspuns:

9752

Explicație: Am facut versiunea c++. Programul scoate cel mai mare numar descrescator folosindu-se de numerele consecutive. E cam complicat sa iti explic prin cuvinte, incearca programul si pune niste numere random, nu prea mari, si observa ce iti da

#include <iostream>

using namespace std;

int x, p=1, m=-1, c;

int main()

{

   cin>>x;

   while (p<=x)

   {

       c=(x/p)%10;

       if(c>m)

       {

           m=c;

           p=p*10;

           

       }

       else x=(x/(p*10))*p+x%p;

   }

   if(m>=0)

   cout<<x;

   else cout<<"null";

   return 0;

}