Поиск совпадений в массиве - C#
Формулировка задачи:
Добрый день. нужно реализовать алгоритм на c#.
Вводим массив чисел, например:
1,5,4,6,2,12,16,3,8,...,6...
На каждом шаге, программа проверяет совпало ли последнее введенное число с одним из предыдущих, т.е. когда мы ввели 6, компьютер увидит, что число 6 уже было и проверит, совпадает ли предпоследнее число с предыдущим перед ранее введенной 6, т.е. равно ли предпоследнее число 4, если не равно, то идем дальше. и так, пока последнее введенное и предпоследнее введенное числа совпадут с двумя подрядыдущими числами из ранее введенных.
например, если предпоследнее число из выше указанных равно 4, то мы пишем "ура", а если не равно, то идем дальше. Ввели, допустим, 16, оно совпало с одним из ранее введенных. проверяем предыдущее. это 6. а в уже введенном массиве перед 16 идет 12, значит проверяем дальше. и так, пока 2 числа не повторятся.
Сам алгоритм я понимаю, а вот записать его на C# не могу. Предполагаю, что сделать это можно с помощью while(), но не получается реализовать сам алгоритм. Помогите, пожалуйста, с написанием.
Решение задачи: «Поиск совпадений в массиве»
textual
Листинг программы
- List<int> intValues = new List<int>();
- int curValue = 0, x;
- while(true)
- {
- Console.Write("\nВведите число: ");
- try{ curValue = Convert.ToInt32(Console.ReadLine()); }
- catch { break; }
- // Засекаем последнее вхождение "введенного" числа
- x = intValues.LastIndexOf(curValue);
- // Проверка что последнее вхождение "введенного" числа -
- // не первый элемент массива и в массиве как минимум 4 числа
- if ((x > 0) && (intValues.Count > 2))
- // Проверяем на равенство "предпоследние" числа двух "пар"
- if (intValues[x-1] == intValues[intValues.Count-1])
- {
- Console.WriteLine("Ура!");
- }
- // Не забываем внести в массив "введенное" число :)
- intValues.Add(curValue);
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д