Какая из сфер доберется до пушки, то есть преодолеет все 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 });
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д