voidink


私信TA

用户名:voidink

访问量:1944

签 名:

等  级
排  名 34112
经  验 454
参赛次数 2
文章发表 2
年  龄 0
在职情况 学生
学  校 天津工业大学
专  业

  自我简介:

TA的其他文章

解题思路:


把坐标拆开,分别计算x和y,分别只和x,y方向总路程有关


注意事项:

参考代码:

#include<iostream>
#include<stdio.h>
#include<math.h>
using namespace std;

double fun(double num,int pos)  //求余函数(因为要用float类型,而%只能求整型数据)
{
    while (num > pos) { num -= pos; }
    return num;
}

int main()
{
    double numX,numY;  //存储结果
    int L, W, x, y, R, a, v, s;
    cin >> L >> W >> x >> y >> R >> a >> v >> s;
    while (L != 0 && W != 0 && x != 0 && y != 0 && R != 0 && a != 0 && v != 0 && s != 0)
    {
        L = L - 2 * R; x = x - R;
        W = W - 2 * R; y = y - R;
        double b = a * asin(1) * 2 / 180;

        double Lx = v * cos(b) * s + x;
        double Ly = v * sin(b) * s + y;
        if (Lx < 0) { Lx = -Lx; }
        if (Ly < 0) { Ly = -Ly; }
        double lengX = fun(Lx, (2 * L));
        double lengY = fun(Ly, (2 * W));
        if (lengX > L) { numX = 2 * L - lengX; }
        else { numX = lengX; }
        if (lengY > W) { numY = 2 * W - lengY; }
        else { numY = lengY; }
        printf("%.2lf %.2lf\n", numX+R, numY+R);

        cin >> L >> W >> x >> y >> R >> a >> v >> s;
    }
    return 0;
}

 

0.0分

0 人评分

新上线《蓝桥杯辅导》课程,近五年的蓝桥杯省赛与国赛真题都有,从读题开始理解题意、梳理思路、实现代码再提交评测全过程,可有效提升获奖比例甚至进国赛!课程介绍、试听请猛击这里

  评论区

我也不知道是精度问题还是算法不准确,当前的检验数据是正确的,我自己实验了几个数据 也没问题,但是在网页上面提交显示答案错误。算法思路是肯定没问题的。如果哪位同学能帮忙找到问题所在,感激不尽。
2018-07-17 16:15:38
  • «
  • 1
  • »