У исполнителя Квадратор две команды, которым присвоены номера: 1. возведи в квадрат 2. Вычти 2 первая из них возводит число на экране во вторую степень, вторая уменьшает его на 2 Исполнитель работает только с натуральными числами. Составые алгоритм получения и числа 2 числа 144, содержащий не более пяти команд. В ответе запишите только номера команд.
1. В приведенном коде ошибка. Не хватает ";" в третьей строке снизу. 2. Немного изменим ваш код и получим искомое значение x Искомое число х = 16293
var x, y, a, b, k: integer;
begin k:=10000; repeat x:=k; a := 0; b := 0; y := 1; while x > 0 do begin if (x mod 10) mod 2 = 0 then a := a * 10 + x mod 10 else begin y := y * 10; b := b * 10 + x mod 10 end; x := x div 10 end; a := a * y + b; k := k + 1; until a = 26391; writeln(a:8, k-1:8); end.
Как могут соотноситься между собой числа: (a) одно число 0, второе - нечетное в промежутке [1, 27] (получается, если в исходном числе одна четная цифра - 0 - и три нечетных, или три нуля и одно нечетное) (b) одно число 0, второе - четное в промежутке [2, 36] (получается, если в исходном числе нет нечетных цифр или нет четных цифр или два нуля и две нечетные цифры) (с) одно число четное в промежутке [2, 8], второе нечетное в промежутке [3, 27] (получается, если одна чётная цифра и три нечётных) (d) одно число четное в промежутке [2, 24], второе нечетное в промежутке [1, 9] (получается, если одна нечётная цифра и три четных) (e) оба числа четные, одно в промежутке [2, 18], второе в промежутке [2, 16] (получается, если две чётных цифры и две нечётных)
Дальше каждое число (кроме 370) разбито на 2, в скобках стоит тот случай, под который подпадает число 236: 23, 6 (c, +) 1313: 13, 13 (-) 270: 27, 0 (a, +) 1114: 11, 14 (<, -) 1614: 16, 14 (e, +) 187: 18, 7 (c, +) 370: - (-) 294: 29, 4 (-) 40: 4, 0 (b, +) ответ. 5 чисел
2. Немного изменим ваш код и получим искомое значение x
Искомое число х = 16293
var
x, y, a, b, k: integer;
begin
k:=10000;
repeat
x:=k;
a := 0; b := 0; y := 1;
while x > 0 do
begin
if (x mod 10) mod 2 = 0
then
a := a * 10 + x mod 10
else begin
y := y * 10;
b := b * 10 + x mod 10
end;
x := x div 10
end;
a := a * y + b;
k := k + 1;
until a = 26391;
writeln(a:8, k-1:8);
end.
(a) одно число 0, второе - нечетное в промежутке [1, 27] (получается, если в исходном числе одна четная цифра - 0 - и три нечетных, или три нуля и одно нечетное)
(b) одно число 0, второе - четное в промежутке [2, 36] (получается, если в исходном числе нет нечетных цифр или нет четных цифр или два нуля и две нечетные цифры)
(с) одно число четное в промежутке [2, 8], второе нечетное в промежутке [3, 27] (получается, если одна чётная цифра и три нечётных)
(d) одно число четное в промежутке [2, 24], второе нечетное в промежутке [1, 9] (получается, если одна нечётная цифра и три четных)
(e) оба числа четные, одно в промежутке [2, 18], второе в промежутке [2, 16] (получается, если две чётных цифры и две нечётных)
Дальше каждое число (кроме 370) разбито на 2, в скобках стоит тот случай, под который подпадает число
236: 23, 6 (c, +)
1313: 13, 13 (-)
270: 27, 0 (a, +)
1114: 11, 14 (<, -)
1614: 16, 14 (e, +)
187: 18, 7 (c, +)
370: - (-)
294: 29, 4 (-)
40: 4, 0 (b, +)
ответ. 5 чисел