- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
#include <stdio.h>
#include <math.h>
const double g = 10; // да, 10
int main() {
double v0; // начальная скорость снаряда в метрах в секунду
double angle; // угол в градусах относительно плоскости земли
scanf("%lf%lf", &v0, &angle);
angle = angle / 180 * M_PI; // переводим градусы в радианы
/*
уравнения движения в нашем случае просты:
x = v0 * t * cos(angle)
y = v0 * t * sin(angle) - g * t * t / 2
в момент удара о землю y будет равен 0 (по условию задачи)
из второго уравнения выразим время:
t = 2*v0*sin(angle)/g
за это время снаряд улетит на v0 * t * cos(angle)
x = 2 * v0 * v0 * cos(angle) * sin(angle) / g
Формулу можно упростить до v0 * v0 * sin(2*angle) / g
*/
double x = v0 * v0 * sin(2 * angle) / g;
printf("x = %.0lf\n", x);
return 0;
}