Descompunerea unui număr într-o sumă de putere de 2 - Pagina 2

descompunerea

Re: Descompunerea unui număr într-o sumă de putere de 2

Am avansat mai mult sau mai puțin în secvență prin includerea unui „ELSE” care, dacă condiția c = 0 nu este verificată, ia din nou rezultatul diferenței dintre (n- log [2] (n)) și reface operațiunea 1; adică calculați jurnalul [2] al diferenței.
Iată cum arată, deși există încă instrucțiuni de inclus:

repornire;
Descompunere: = proc (n)
local a, b, c, d;
a: = evalf (log [2] (n));
b: = etaj (a);
c: = evalf (n-2 ^ b);
dacă c = 0 atunci tipăriți (Descompunere = 2 * putere (b)) altceva d: = evalf (log [2] (%)):
incheie daca:
încheie proc:
Descompunerea (67);

Re: Descompunerea unui număr într-o sumă de putere de 2


Iată ce am făcut cu exemplul de cod:

repornire;
Dec: = proc (n)
local a, b, c;
c: = n;
în timp ce 0

Re: Descompunerea unui număr într-o sumă de putere de 2

Mulțumesc, într-adevăr, codul pe care l-ați schimbat funcționează și returnează rezultatele căutării;