Какая из сфер доберется до пушки, то есть преодолеет все 10,5 метров и врежется в пушку - C#

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

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

Есть некоторая дорога. С одной стороны этой дороги стоит пушка, с другой — место спауна некоторых объектов сферической формы. От пушки до места спауна объектов 10,5 метров. Сфера после спауна движется со скоростью 1 м/c. Пушка может стрелять в объекты раз в три секунды. То есть, перезарядка пушки длится ровно 3 секунды. Может быть и так, что пушка делает выстрел в объект, проходит 3 секунды, она полностью перезаряжается. Затем проходит еще какое-то время и она делает выстрел. То есть, интервалы между выстрелами из пушки произвольные. Количество сфер, которые будут спауниться, задано (например, 20 штук). Так же даны моменты времени спауна каждой сферы, например:

20 100 101 102 103 104 105 151 152 154 155 157 158 160 161 163 164 166 167 169 170

Здесь число на первой строке — количество сфер, ряд чисел на второй строке — моменты спауна. Как лично я понимаю, это все в тех же самых секундах. То есть, первая сфера появится после 100 секунд с момента запуск приложения, вторая — через 1 секунду после спауна первой, третья через 1 секунду после спауна второй и через 2 секунды считая от момента спауна первой. Сама задача: определить, какая из сфер все же доберется до пушки, то есть преодолеет все 10,5 метров и врежется в пушку. Когда из пушки производится выстрел, то гарантируется, что снаряд обязательно попадет в сферу и снаряд мгновенно после выстрела поражает сферу, то есть время на полет снаряда не затрачивается. Если сфера врезается в пушку, то нужно вывести номер этой сферы. Если ни одна сфера не врезалась в пушку, то нужно вывести "Ни одна сфера не добралась до пушки". Нужно сделать это не для конкретно какого-то случая, а для ряда таких случаев, например:

Пример №1:

11 0 1 2 3 4 5 6 7 8 9 10 На выходе получается: 7

Пример №2:

11 0 2 4 6 8 10 12 14 16 18 20 На выходе получается: Ни одна сфера не добралась до пушки

Пример №3:

20 100 101 102 103 104 105 151 152 154 155 157 158 160 161 163 164 166 167 169 170 На выходе получается: 14

Пожалуйста, проконсультируйте, как такое написать для всех возможных заданных значений. Не могу понять, отдельно для какого-то случая написать могу, а в общем виде не получается.

Решение задачи: «Какая из сфер доберется до пушки, то есть преодолеет все 10,5 метров и врежется в пушку»

textual
Листинг программы
tests.Add(new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 });
tests.Add(new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 });

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


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

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

10   голосов , оценка 3.9 из 5
Похожие ответы