1) 144 - это 12². Следующий квадрат - это 13²=169 и из 169 мы никак не получим за 4 вычитания двоек число 144. Поэтому последняя команда - это 1 (возведи в квадрат). 2) Теперь из 2 надо получить 12 не более, чем за 4 команды. Если 2 возвести в квадрат, получим 4 и этого мало, поэтому возведем 4 еще раз в квадрат, получив 16. Два подряд вычитания двоек как раз дадут 12. 3) Решение 1 (возведи в квадрат) - получаем 4 1 (возведи в квадрат) - получаем 16 2 (вычти 2) - получаем 14 2 (вычти 2) - получаем 12 1 (возведи в квадрат) - получаем 144
// PascalABC.NET 3.3, сборка 1540 от 16.09.2017 // Внимание! Если программа не работает, обновите версию!
begin var n,p:integer; var s:string; for var a:=1 to 9 do for var b:=0 to 9 do for var c:=0 to 9 do begin n:=100*a+10*b+c; s:=(n*n).ToString.Right(3); p:=Pos(a.ToString,s); if p>0 then begin Delete(s,p,1); p:=Pos(b.ToString,s); if p>0 then begin Delete(s,p,1); if s=c.ToString then Write(n,'(',n*n,')',' ') end end end end.
Результат 205(42025) 376(141376) 421(177241) 625(390625) 963(927369)
1.Взять сковородку
2 налить масла
3 взять яйцо в руку
4 сломать яйцо
5 вылить все содержимое в сковородку
6 Взять другое яйцо
7 сломать его
8 вылить все содержимое
9 взять 3 яйцо
10 вылить все содержимое
11 ждать пока приготовится
12 достать из сковородки яйчницу
13 и положить на тарелку