Szám bontása 2-es hatvány összegére - 2. oldal

Re: Egy szám felbontása 2 hatványának összegére
Többé-kevésbé előrehaladtam a szekvenciában egy "ELSE" beillesztésével, amely ha a c = 0 feltétel nem érvényesül, akkor ismét felveszi az (n- log [2] (n)) különbség eredményét és újraváltja az l 'műveletet 1; azaz kiszámítja a különbség log [2] értékét.
Így néz ki, bár még mindig vannak utasítások, amelyek tartalmazzák:
újrakezd;
Bomlás: = proc (n)
helyi a, b, c, d;
a: = evalf (log [2] (n));
b: = padló (a);
c: = evalf (n-2 ^ b);
ha c = 0, akkor nyomtassa ki (bomlás = 2 * teljesítmény (b)) másképp d: = evalf (log [2] (%)):
vége, ha:
vége proc:
Bomlás (67);
Re: Egy szám felbontása 2 hatványának összegére
Íme, amit a mintakódjával tettem:
újrakezd;
December: = proc (n)
helyi a, b, c;
c: = n;
míg 0
Re: Egy szám felbontása 2 hatványának összegére
Köszönöm, a megváltoztatott kód valóban működik, és visszaadja a keresési eredményeket;