Помогите решить задачу на 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 шт):
тело в начальный момент времени 0 находится в точке с координатой 0, скоростью 0 и ускорением 0.
У вас есть:
- момент времени
- координата
- скорость
- ускорение
- ускорение ускорения
Первые четыре величины = 0, последняя = 6.
Вам просто нужно на каждый следующий момент времени правильно пересчитать все эти величины.
Координатаt+1 = Координатаt + Скоростьt
Ну и дальше остальное всё однотипно скорость через ускорение и т.д.
Ну и потом в цикле перебрать моменты времени. На C# это быстро считается, думаю в секунду уложитесь даже для миллиона тиков. Если нет, то придётся придумывать формулу пересчёта без итераций. Но сначала попробуйте таки циклом.