Description
Minecraft是一个颠覆性的高自由度游戏,其中文译名叫“我的世界”。之所以会有如此译名,原因在于这个游戏就像一个沙盒世界,玩家就像是个创世神一般。其颠覆性在于它不同于以往那些游戏“要你做
去什么”,相反的,是由玩家去思考“我要做什么”。
说了这么一段,你们是不是很想上网搜一搜怎么玩呢?不过玩之前麻烦先帮Lrc解决一个问题。
这个游戏里面是可以制作逻辑电路的,通过简单的搭建,玩家可以制作出一个简单的TNT大炮。
假设现在Lrc想使用大炮轰地面上炸距离自己s米处的目标,大炮的发射仰角为A(单位角度),炮弹的初速度为v米/秒,TNT在发出后t秒爆炸,爆炸半径为r米(当目标到爆炸点的距离<=r时即视为击中),
炸药落地后不反弹。重力加速度取10m/s^2。问:Lrc能否击中目标?PS:目标与Lrc于同一平面。
输入格式
输入包括5个实数,分别为s(s > 0),A(0 < A < 90),v(v > 0),t(t > 0),r(r > 0),之间用空格分割。
输出格式
输出一行,若能击中目标,输出“nice!”(不包含引号),否则输出“T^T”(不包含引号)。
输入样例
9 30 10 1 0.5
输出样例
nice!
解题思路
高中物理
#include <stdio.h>
#include <math.h>
int main()
{
double s, a, v, t, r;
double x1, x2, h2, t1, g=10, vx, vy;
scanf("%lf %lf %lf %lf %lf", &s, &a, &v, &t, &r);
// 水平速度和垂直速度
vx = v * cos(a * M_PI / 180);
vy = v * sin(a * M_PI / 180);
// 落地时间,按落地时间跑的水平距离,按爆炸时间跑的水平距离
t1 = 2 * vy / g;
x1 = vx * t1;
x2 = vx * t;
// 还未落地就爆炸时的高度
h2 = vy * t - g * t * t / 2;
// 落地前爆炸
if(t1 <= t)
{
if(fabs(x1 - s) <= r)
{
printf("nice!\n");
}
else
{
printf("T^T\n");
}
}
else
{
if((x2 - s) * (x2 - s) + h2 * h2 <= r * r)
{
printf("nice!\n");
}
else
{
printf("T^T\n");
}
}
return 0;
}