// PascalABC.NET 3.1, сборка 1218 от 12.04.2016 begin var a,b,c,min:real; Write('Введите три числа: '); Read(a,b,c); if a<b then min:=a else min:=b; if c<min then min:=c; Writeln('min=',min) end.
Тестовое решение: Введите три числа: 4.5 -3 0 min=-3
Var a,b,c,min:integer; begin write('Введите значение A=');read(a); write('Введите значение B=');read(b); write('Введите значение C=');read(c); if (a<b) and (a<c) then min:=a; if (b<a) and (b<c) then min:=b; if (c<a) and (c<b) then min:=c; write('Минимальное число=',min); end.
В начале в строке находилось 333 троек по 8 плюс одна 8, всего 1000 восьмерок. 1. При выполнения цикла каждая из троек 8 будет заменена на одну 9. Значит у нас получится строка длиной в 334 символа, где 333 девятки и последний символ - восьмерка 2. Далее 333 девятки заменятся на 111 восьмерок плюс последняя восьмерка - всего получим 112 восьмерок 3. Из 112 восьмерок получится 37 девяток и одна восьмерка 4. И 37 девяток получим 12 восьмерок плюс одна девятка и плюс последняя восьмерка 5. 12 восьмерок дадут 4 девятки плюс последние 9 и 8 6. И наконец получаем строку 8998 ответ: 8998
Рекурсивный подход.(Символы тоже удаляет) function grad(s:string):string; var i:byte; detect:boolean; begin while i < length(s) - 2 do begin inc(i); if (s[i] = s[i+1]) and (s[i] = s[i+2]) then {проверка последовательности из 3 елементов} begin delete(s,i,3); {если да - удаляем их} detect:=True; {логическая переменная регистрирует изменение строки} end;end; if detect = True then s:=grad(s); {если строку изменили , проверяем не появились ли там еще последовальности} grad:=s; end;
var s:string; begin readln(s); writeln(grad(s)); end.
begin
var a,b,c,min:real;
Write('Введите три числа: '); Read(a,b,c);
if a<b then min:=a else min:=b;
if c<min then min:=c;
Writeln('min=',min)
end.
Тестовое решение:
Введите три числа: 4.5 -3 0
min=-3