Удаление элемента из List<> со сдвигом - C#
Формулировка задачи:
Дан список от 1 до N элементов(N вводится с клавиатуры). Пользователь вводит K-ый элемент(он удаляется).Затем пользователь вводит R-ый элемент,который отсчитывается не сначала,а с K+1 элемента.
Например,элементы 1 2 3 4 5 6 7.Пользователь вводит 3,получается 1 2 4 5 6 7.Пользователь снова вводит значение,на этот раз 2,получается 1 2 4 6 7.Пользователь вводит снова 3,получается 2 4 6 7.
Решение задачи: «Удаление элемента из List<> со сдвигом»
textual
Листинг программы
static void Main()
{
List<int> list = new List<int> { 1, 2, 3, 4, 5, 6, 7 };
int n, k = 0;
while (list.Count > 0 && int.TryParse(Console.ReadLine(),
NumberStyles.Integer,
CultureInfo.InvariantCulture,
out n))
{
k += --n;
int removeAt = (k + 1) % list.Count;
Console.WriteLine("RemoveAt: {0}", removeAt != 0 ? removeAt : list.Count);
RemoveElement(list, k);
Console.WriteLine(string.Join(" ", list));
}
Console.WriteLine("End.");
Console.ReadKey();
}