У исполнителя две команды. которым присвоены номера: 1. возведи в квадрат 2. прибавь 3. Первая из них возводит число на экране во вторую степень, вторая увеличивает его на 3. Составьте алгоритм получения из числа 1 числа 25, содержащий не более 5 команд. В ответе запишите полное решение и сам ответ
begin
var a:=ArrRandom(100,-20,20); a.Println;
WritelnFormat('Положительных {0}, отрицательных {1}',
a.Where(x->x>0).Count,a.Where(x->x<0).Count)
end.
Тестовое решение:
-19 12 19 -17 -5 10 -13 -2 -4 16 -6 -12 -3 5 -3 -6 -1 8 -19 -14 -1 9 -10 20 -7 20 5 17 -7 11 -5 -14 -19 -18 16 13 11 -2 -3 9 1 11 10 -13 8 -14 -15 -13 8 5 -7 20 -20 18 2 -8 2 19 10 -5 -15 -10 -16 5 1 -12 -14 -6 9 5 3 -20 -9 -7 6 9 20 -18 -8 -13 14 -3 -11 9 -3 -5 -15 -16 0 4 -10 12 8 -19 4 -10 6 -15 7 0
Положительных 44, отрицательных 54
решения задачи используется цикл for
var
a, b: integer;
begin
write('A: '); readln(a);
write('B: '); readln(b);
if a < b then
for a := a to b do
writeln (a * a * a);
readln;
end.
Пользователь может ввести значения так, что a будет больше b. В таком случае цикл for не выполнится.
Действительно, if здесь лишнее. Оно имеет смысл только в случае, когда обрабатывается ситуация, где значение b меньше, чем a:
var
a,b:integer;
begin
write('A: '); readln(a);
write('B: '); readln(b);
if a < b then
for a:=a to b do
writeln(a*a*a)
else
for a:=a downto b do
writeln(a*a*a);
end.