dpokatski 9debbe9ebd lab12 10 meses atrás
..
readme.md 9debbe9ebd lab12 10 meses atrás
task1.cs 9debbe9ebd lab12 10 meses atrás
task2.cs 9debbe9ebd lab12 10 meses atrás
task3.cs 9debbe9ebd lab12 10 meses atrás
task4.cs 9debbe9ebd lab12 10 meses atrás
task5.cs 9debbe9ebd lab12 10 meses atrás

readme.md

Lab 5

Задача 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. Сжатие бинарных последовательностей

Решение:

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. Стрелки

Решение:

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. Нумеролог

Решение:

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. Перестановка

Решение:

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