Сpascalabc.net опишите на языке как работает программа.
var n,i,m: integer;
flag: boolean;
begin
readln(n);
flag: =false;
if (n mod 2< > 0)then i: =n-1 else i: =n;
while i> 0 do begin
if power(2,i)< =n then begin
write(power(2,i),' '); flag: =true;
end;
i: =i-2;
end;
if not flag then writeln(0);
end.
начну с того, что это логический код
дословный перевод
var n, i, m: целое число;
флаг: логический;
начать
readln(n); прочитать переменную
флаг: = false; флагу присвоить значение лжи
если (n mod 2< > 0), то i: =n-1 иначе i: =n;
в то время как i> 0 действительно начинаются
если мощность(2, i)< =n, то начинайте
write (power(2, i),' '); flag: = true; в этом случае флагу присвоить правдивое значание
конец;
i: =i-2;
конец;
если не флаг, то writeln(0);
конец
я особо в логических не шарю, но тут идёт по типу если это трава то это наркота
а если это дурь то это тоже наркота