# Lab 5 ### [Задача 691. Номера автобусов](https://acmp.ru/index.asp?main=task&id_task=691) **Решение:** ``` string[] valid = { "A", "B", "C", "E", "H", "K", "M", "O", "P", "T", "X", "Y" }; Console.WriteLine("Введите номер автобуса:"); while (true) { string input = Console.ReadLine(); if (string.IsNullOrEmpty(input)) { break; } if (input.Length != 6) { Console.WriteLine("Неверный формат номера."); continue; } string a = input.Substring(0, 1); string b = input.Substring(4, 2); string c = input.Substring(1, 3); if (!valid.Contains(a) || !valid.Contains(b.Substring(0, 1)) || !valid.Contains(b.Substring(1, 1))) { Console.WriteLine("Неверный формат номера."); continue; } if (!int.TryParse(c, out int parsedDigits)) { Console.WriteLine("Неверный формат номера."); continue; } Console.WriteLine("Номер автобуса соответствует стандарту."); } ``` **Вывод:** ``` Введите номер автобуса: A658OP Номер автобуса соответствует стандарту. G8HHoP Неверный формат номера. ``` ### [Задача 950. Сжатие бинарных последовательностей](https://acmp.ru/index.asp?main=task&id_task=950) **Решение:** ``` Console.WriteLine("Введите бинарную последовательность:"); string a = Console.ReadLine(); StringBuilder b = new StringBuilder(); for (int i = 0; i < a.Length; i++) { int count = 1; while (i + 1 < a.Length && a[i] == a[i + 1]) { count++; i++; } if (a[i] == '0') { b.Append('a', count); } else { char compressedChar = (char)('a' + count - 1); b.Append(compressedChar); } } Console.WriteLine($"Сжатая последовательность: {b}"); ``` **Вывод:** ``` Введите бинарную последовательность: 000000111001101100 Сжатая последовательность: aaaaaacaababaa ``` ### [Задача 44. Стрелки](https://acmp.ru/index.asp?main=task&id_task=44) **Решение:** ``` Console.WriteLine("Введите последовательность символов:"); string a = Console.ReadLine(); int b = 0; for (int i = 0; i < a.Length - 4; i++) { if (a.Substring(i, 5) == ">>-->") { b++; } else if (a.Substring(i, 5) == "<--<<") { b++; } } Console.WriteLine($"Количество стрел: {b}"); ``` **Вывод:** ``` Введите последовательность символов: >>-->>--><--<<< Количество стрел: 3 ``` ### [Задача 95. Нумеролог](https://acmp.ru/index.asp?main=task&id_task=95) **Решение:** ``` static void Main() { Console.WriteLine("Введите время жизни человека в секундах:"); long a = long.Parse(Console.ReadLine()); int b = GetDigitSum(a); int c = 1; while (b >= 10) { b = GetDigitSum(b); c++; } Console.WriteLine($"Полученная цифра: {b}"); Console.WriteLine($"Количество операций: {c}"); } static int GetDigitSum(long number) { int b = 0; while (number > 0) { b += (int)(number % 10); number /= 10; } return b; } ``` **Вывод:** ``` Введите время жизни человека в секундах: 36000 Полученная цифра: 9 Количество операций: 1 ``` ### [Задача 693. Перестановка](https://acmp.ru/index.asp?main=task&id_task=693) **Решение:** ``` Console.WriteLine("Введите первое слово:"); string x = Console.ReadLine().ToLower(); Console.WriteLine("Введите второе слово:"); string y = Console.ReadLine().ToLower(); bool isEqual = Enumerable.SequenceEqual(x.OrderBy(e => e), y.OrderBy(e => e)); if (isEqual) { Console.WriteLine("Yes"); } else { Console.WriteLine("No"); } ``` **Вывод:** ``` Введите первое слово: TomMarvoloRiddle Введите второе слово: IamLordVoldemort Yes ```