ответ: 662.
обработка строки состоит из ряда повторяющихся циклов.
1. находим три двойки, заменяем на 6.
2. повторяем пункт 1 четыре раза.
3. заменяем четыре шестерки на 2.
итого, убрали 12 двоек, добавили одну двойку. следовательно, строка укоротилась на 11 символов.
подсчитаем количество циклов при длине строки 282. 282/11 = 25*11+7
следовательно, после 25 циклов останется строка из семи двоек.
три двойки заменяем на 6, следующие три двойки заменяем на 6, остается одна двойка. тогда в конце получится строка 662.
var
a, b, n, i, j, t: integer;
s, sn: string;
begin
write ('введите начало отрезка: ');
readln (a);
write ('введите окончание отрезка: ');
readln (b);
n : = 0;
for i : = a to b do begin
s : = inttostr (i);
t : = 1;
for j : = 1 to length (s) do
t : = t * strtoint (s[j]);
if t > n then begin
sn : = s;
n : = t;
end;
writeln ('число с наибольшим произведением цифр: ' + sn);
ответ: 662.
обработка строки состоит из ряда повторяющихся циклов.
1. находим три двойки, заменяем на 6.
2. повторяем пункт 1 четыре раза.
3. заменяем четыре шестерки на 2.
итого, убрали 12 двоек, добавили одну двойку. следовательно, строка укоротилась на 11 символов.
подсчитаем количество циклов при длине строки 282. 282/11 = 25*11+7
следовательно, после 25 циклов останется строка из семи двоек.
три двойки заменяем на 6, следующие три двойки заменяем на 6, остается одна двойка. тогда в конце получится строка 662.
var
a, b, n, i, j, t: integer;
s, sn: string;
begin
write ('введите начало отрезка: ');
readln (a);
write ('введите окончание отрезка: ');
readln (b);
n : = 0;
for i : = a to b do begin
s : = inttostr (i);
t : = 1;
for j : = 1 to length (s) do
t : = t * strtoint (s[j]);
if t > n then begin
sn : = s;
n : = t;
end;
end;
writeln ('число с наибольшим произведением цифр: ' + sn);
end;