在平面直角坐标系下,台球桌是一个左下角在(0,0),右上角在(L,W)的矩形。有一个球心在(x,y),半径为R的圆形母球放在台球桌上(整个球都在台球桌内)。受撞击后,球沿极角为a的射线(即:x正半轴逆时针旋转到此射线的角度为a)飞出,每次碰到球桌时均发生完全弹性碰撞(球的速率不变,反射角等于入射角)。

如果球的速率为vs个时间单位之后球心在什么地方?

输入

输入文件最多包含25组测试数据,每个数据仅一行,包含8个正整数L,W,x,y,R,a,v,s(100<=L,W<=105, 1<=R<=5, R<=x<=L-RR<=y<=W-R, 0<=a<360, 1<=v,s<=105),含义见题目描述。L=W=x=y=R=a=v=s=0表示输入结束,你的程序不应当处理这一行。

输出

对于每组数据,输出仅一行,包含两个实数xy,表明球心坐标为(x,y)。xy应四舍五入保留两位小数。

样例输入
100 100 80 10 5 90 2 23
110 100 70 10 5 180 1 9999
0 0 0 0 0 0 0 0
样例输出
80.00 56.00
71.00 10.00
解题思路:
1、简化题目--题目是一个有体积的球,看成平面就是圆,有半径,所以为了使它可以看成一个点的运动,就用圆心代表整个球的运动。易知圆心的运动范围比之前要小(即一直离边沿R的距离)
L=L-2*R,W=W-2*R
2、结题核心:由于已知速度和时间可以知道总的路程S,又因为它运动的角度始终是a,所以可以求出它的纵坐标的变化总值S*sin(a),横坐标的变化总值S*cos(a).
3、求y的变化=S*sin(a)-n*W
x 的变化=S*cos(a)-n*L
n为0,1,2,3,4。。。。
4、得出结论

编程习题练习记录--台球碰撞相关推荐

  1. 题目 1075: 台球碰撞

    样例输入 100 100 80 10 5 90 2 23 110 100 70 10 5 180 1 9999 0 0 0 0 0 0 0 0 样例输出 80.00 56.00 71.00 10.00 ...

  2. NYOJ 665 台球碰撞

    台球碰撞 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 在平面直角坐标系下,台球桌是一个左下角在(0,0),右上角在(L,W)的矩形.有一个球心在(x,y),半径为R的 ...

  3. 经典编程习题,用Java实现:矩阵转置、最大公约数和最小公倍数、计算自然对数的底e的值、输出1000以内的回文素数、判断两个年份之间的平闰年情况。

    经典编程习题,用Java实现 1.矩阵转置 2.最大公约数和最小公倍数 3.计算自然对数的底e的值 4.输出1000以内的回文素数 5.判断两个年份之间的平闰年情况 1.矩阵转置 public cla ...

  4. JAVA编程习题及答案_完美版

    JAVA编程习题及答案_完美版 原创 lingwu7 最后发布于2017-08-15 20:01:12 阅读数 10796 收藏 发布于2017-08-15 20:01:12 版权声明:本文为博主原创 ...

  5. Linux环境编程姜林美,Linux环境编程习题_编程题_答案.pdf

    Linux环境编程习题_编程题_答案 Linux 境编程-人民邮电出版社-姜林美 课后习题(编程题)答案 第三章 1 第五章 4 第六章 9 第七章 19 第八章 22 第九章 35 第十章 38 三 ...

  6. C++教程从0到1入门编程中知识点记录!

    C++教程从0到1入门编程中知识点记录! 一.C语言 1.冒泡排序 示例代码: #include <iostream> using namespace std; int main() { ...

  7. 【算法修炼】台球碰撞 C

    台球碰撞 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 在平面直角坐标系下,台球桌是一个左下角在(0,0),右上角在(L,W)的矩形.有一个球心在(x,y),半径为R的 ...

  8. python编程实现屏幕记录功能

    文件配置和库的调用可以看我上一个发的博客: python编程实现键盘记录功能 这里直接上代码: # -*- coding: UTF-8 -*- ############################ ...

  9. 菜鸟能学python编程,菜鸟学Python编程文章阅读记录一

    菜鸟学Python编程文章阅读记录 看的懵懵懂懂,感觉就是要把代码看懂到,这个代码块做了什么功能,了解到建了属性,定义了方法,这些方法与属性的关系 今天是js逆向专题,这个帖子,回头再好好看 回头再找 ...

最新文章

  1. 怎么将两个list集合按照条件合成一个list
  2. PhantomJS 基础及示例
  3. 【linux排错】error while loading shared libraries: xxx.so.x 错误的原因和解决办法
  4. 微信公众平台开发:进阶篇(Web App开发入门)
  5. Storm-源码分析-Stats (backtype.storm.stats)
  6. 二叉排序树的后序遍历序列必然是递增的_剑指offer 33——二叉搜索树的后序遍历序列...
  7. 编写vbs脚本发送邮件
  8. asp.net架构之请求处理过程:HttpModule,HttpHandler
  9. Bootstrap禁用某个按钮组
  10. vs2008下配置OGREV1.7源码
  11. Linux系统维护人员的必备参考书
  12. 类比菜鸟全国仓配网络来学习CDN
  13. [高通MSM8909][Android7.1]电信卡信号优化
  14. 开关电源PFC电路原理详解及matlab仿真
  15. 3DMax、Unity、Threejs旋转转换
  16. TOM邮箱容量满了收发不了邮件?你应该快速做到这些事
  17. 自制网站服务器主机,自制服务器主机迷你
  18. 老男孩爬虫实战密训课第一季,2018.6,初识爬虫训练-实战2-自动登陆抽屉网
  19. HTML5堆木头游戏
  20. eclipse neno高级安装

热门文章

  1. ESD器件的主要性能参数
  2. 字节跳动All in教育的战略决心与长期主义
  3. nrf52 ESB通信协议底层探讨
  4. python:pyautocad
  5. python操作微信电脑版_PC端微信数据库解密Python版
  6. 北京租房子被骗---------每日反省篇
  7. labuladong算法小抄中图算法的学习笔记(c++版)
  8. [数据统计]百度在调低索引库的容量
  9. 对搜索引擎不友好的网站具有的特征
  10. java-jsp-nutz基础周测