Берешь с конца мысленно расставляешь над цифрами очерёдность от нуля до десяти потом смотришь над какими единичками какая цифра после смотришь в таблицу квадратов двойки. циферка над единичкой соответствует степени цифры 2 переводишь степень в цифру (2 во 2 степени = 4) складываешь что получилось и вуаля от двоичной к десятичной. наоборот же проще смотришь какую максимальную степень вмещает число( 9 вмещает 2 в 3 степени) пишешь степень от основного отнимаешь её и так пока не напишешь набор степеней после смотришь в таблицу и пишешь 0 если нету 1 если есть такая степень в написанных тобою (нам так объясняли)
Aleksandrovna Kolesnik1764
25.02.2021
Var a,k,s,m: integer; p: real; begin write('введите натуральное число: '); readln(a); k: =0; s: =0; p: =1; while a> 0 do begin m: =a mod 10; if m = 3 then k: =k+1 else begin if m > 5 then s: =s+m; if m > 7 then p: =p*m; end; a: =a div 10; end; writeln('k = ',k); writeln('s = ',s); writeln('p = ',p); end. var a: integer; max,min,m: byte; begin write('введите натуральное число: '); readln(a); max: =0; min: =10; while a> 0 do begin m: =a mod 10; if m< min then min: =m; if m> max then max: =m; a: =a div 10; end; writeln('min = ',min); writeln('max = ',max); end.