Помогите решить задачу на C# .Net 8.0

Ограничение времени 1 секунда Ограничение памяти 64Mb Ввод стандартный ввод или input.txt Вывод стандартный вывод или output.txt

Рассмотрим следующую модель движения тела. Будем фиксировать такие параметры, как координата, скорость, ускорение и ускорение ускорения (рывок). Если некоторый параметр равен a и имеет скорость изменения v, то в следующий момент времени этот параметр будет равен a + v.

Например, если тело имело координату, равную 10, скорость, равную 20, ускорение, равное 30 и ускорение ускорения, равное 40, то в следующий момент оно будет иметь координату 30, скорость 50 и ускорение 70. Ускорение ускорения будем считать в этой задаче постоянной величиной.

Задача довольно проста: тело в начальный момент времени 0 находится в точке с координатой 0, скоростью 0 и ускорением 0. Ускорение ускорения этого тела постоянно и равно 6 Требуется определить, в точке с какой координатой окажется это тело в момент времени t.

Формат ввода В единственной строке находится одно число t. 0 ≤ t ≤ 106.

Формат вывода Вывести одно число — координату, в которой окажется тело в момент времени t.

Пример 1 Ввод 6 Вывод 120

Пример 2 Ввод 2 Вывод 0

Пример 3 Ввод 1000000 Вывод 999997000002000000


Ответы (1 шт):

Автор решения: CrazyElf

тело в начальный момент времени 0 находится в точке с координатой 0, скоростью 0 и ускорением 0.

У вас есть:

  • момент времени
  • координата
  • скорость
  • ускорение
  • ускорение ускорения

Первые четыре величины = 0, последняя = 6.

Вам просто нужно на каждый следующий момент времени правильно пересчитать все эти величины.

Координатаt+1 = Координатаt + Скоростьt

Ну и дальше остальное всё однотипно скорость через ускорение и т.д.

Ну и потом в цикле перебрать моменты времени. На C# это быстро считается, думаю в секунду уложитесь даже для миллиона тиков. Если нет, то придётся придумывать формулу пересчёта без итераций. Но сначала попробуйте таки циклом.

→ Ссылка