PascalABC.NET 3.7:
###RS.AdjacentGroup.SelectMany(x → x.Len >= 3 ? x.Len + x[0] : x.Str).PrПояснение:
RS - ReadString: Возвращает значение типа string, введенное с клавиатуры.
AdjacentGroup: Группирует одинаковые подряд идущие элементы, получая последовательность массивов.
SelectMany: Проецирует каждый элемент последовательности в новую последовательность и объединяет результирующие последовательности в одну последовательность.
.Len - .Length: Длина массива.
.Str - .JoinToString: Преобразует последовательность символов в строку, не используя разделитель (при последовательность другого типа данных в качестве разделителя используется пробел).
.Pr - .Print: Выводит последовательность символов на экран, не используя разделитель (при последовательность другого типа данных в качестве разделителя используется пробел).
Пример работы:
Поделитесь своими знаниями, ответьте на вопрос:
Ввести два целых числа a и b (a больше или равно b) и вывести квадраты всех чисел от a до b. Написать программу с языка Кумир
{1, 3, 4, 5, 7, 9}, {1, 5, 9}, {3, 4, 7}, {2, 6}
Объяснение:
1) Объединение A и C - все элементы, которые входят хотя бы в одно из множеств A, C. Но так как A - подмножество C (полностью входит в C), то объединение - это просто C: {1, 3, 4, 5, 7, 9}.
2) Пересечение A и C - все элементы, которые входят одновременно в оба множества A и C. В данном случае пересечение - это просто A: {1, 5, 9}.
3) Дополнение A до C - все элементы, которые лежат в C, но не в A: {3, 4, 7}.
4) Дополнение пересечения B и C до B: сюда должны входить все элементы, принадлежащие B, но не принадлежащие пересечению. Можно сообразить, что это превратится просто во все элементы B, не принадлежащие C: {2, 6}