Задача
С клавиатуры вводится последовательность натуральных чисел, оканчивающихся числом 0. Количество чисел в последовательности неизвестно.
Программа должна вывести на экран четные числа из этой последовательности, которые не меньше 50.
Помогите пожалуйста :(
Koljisto:
Какой язык?
паскаль
Ответы
Ответ дал:
1
Begin
var a := new Stack<integer>;
var input:integer;
Read(input);
while(input<>0) do
begin
if (input mod 2 = 0) and (input > 50) then
a.Push(input);
Read(input);
end;
a.Println;
end.
Ну вот чем этот Паскаль хорош, на нем алгоритм ложится в код прямо блоками.
ReadSeqIntegerWhile(p -> p <> 0) - читаем с консоли целочисленные данные, пока не встретится ноль и закидываем результат в массив.
Where(p -> p.IsEven and (p >= 50)) - фильтруем только те, что удовлетворяют условию
Println - печатетм, что накопилось
Наврал, ReadSeqIntegerWhile(p -> p <> 0) - читаем с консоли целочисленные данные, пока не встретится ноль и составляем из них последовательность. Не массив. Она не хранится, а прямиком топает на фильтр по одному элементу в затылочек. Как на конвейере.
И получается один оператор в форме цепочки из трех вызовов
Лябды тут рулят, конечно
Лямбды
Да, код красивый и краткий. Благодарю за разъяснение
"Обращайтесь!" ))
Ответ дал:
1
===== PascalABC.NET =====
begin
ReadSeqIntegerWhile(p -> p <> 0).
Where(p -> p.IsEven and (p >= 50)).Println
end.
Приложения:
Вас заинтересует
1 год назад
1 год назад
3 года назад