Считалочка с использованием списка - C#

Узнай цену своей работы

Формулировка задачи:

«Считалка». N ребят стоят по кругу. Начав отсчет от первого, удаляют каждого К-го, смыкая круг после каждого удаления. Определить, кто остался последним. удаляет элемент,начиная с 0 индекса. Т.е. нужно удалить сначала третий элемент,а потом пятый и получается вот: 1 2 4 5 6 7 8 9 10 //удалился 3 элемент,начиная от начала. 1 2 4 5 7 8 9 10 // удалился 5 элемент,опять с начального элемента. а нужно,чтоб удалялось с выбранного предыдущего элемента,т.е 1 2 4 5 6 7 8 9 10 //удалился 3 элемент,начиная от начала. 1 2 4 5 6 7 8 10 // удалился 5 элемент,начиная от четверки
Листинг программы
  1. class Program
  2. {
  3. static void Main(string[] args)
  4. {
  5. Console.WriteLine("Задайте количество в кругу");
  6. int N = Convert.ToInt32(Console.ReadLine());
  7. int K;
  8.  
  9. List<int> Players = new List<int>(N);
  10. for (int i = 0; i <=(N-1); i++)
  11. {
  12. Players.Insert(i, (i + 1));
  13. }
  14.  
  15. for (int i = 0; i <= Players.Count+1; i++)
  16. {
  17. Console.WriteLine();
  18. Console.WriteLine("Введите номер игрока,которого будете удалять");
  19. K = Convert.ToInt32(Console.ReadLine());
  20. K--;
  21. if (K < Players.Count)
  22. {
  23. Players.RemoveAt(K);
  24. }
  25. else
  26. {
  27. Console.WriteLine("Этот игрок уже удален");
  28. i--;
  29. }
  30. Console.WriteLine("Оставшиеся");
  31. foreach (int j in Players)
  32. {
  33. Console.Write(j + " ");
  34. }
  35. }
  36. Console.ReadLine();
  37. }
  38. }

Решение задачи: «Считалочка с использованием списка»

textual
Листинг программы
  1. using System;
  2. using System.Linq;
  3. using System.Collections.Generic;
  4.  
  5. public class Test
  6. {
  7.     public static void Main()
  8.     {
  9.         int n = 10;
  10.         int k = 3;
  11.         var ring = new List<int>(Enumerable.Range(1, n));
  12.         for (var ki = --k; ring.Count != 1; ki = (ki + k) % ring.Count)
  13.             ring.RemoveAt(ki);
  14.         Console.WriteLine(ring[0]);
  15.     }
  16. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы