17235 Minecraft是个好游戏[C]

17235 Minecraft是个好游戏

时间限制:1000MS  内存限制:65535K
提交次数:50 通过次数:16 收入:25

题型: 编程题   语言: C++;C

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!


来源

lyric_seraph

作者

201131001114


思路:本题分两种情况,一是落地时过一段时间爆炸;而是在飞行过程中爆炸,但仍有可能炸到目标。

根据物理求出水平速度、垂直速度、飞行时间,以爆炸中心为圆点,求圆点和目标的距离是否小于半径。


代码

#include <stdio.h>
#include <math.h>

int main()
{
//    freopen("input.txt","r",stdin);
//    freopen("output.txt","w",stdout);

    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;//落地爆炸时,水平飞行距离
    h2=vy*t-g*t*t/2;
    x2=vx*t;//空中爆炸时,水平飞行距离
    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;
}



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值