UVA - 10387 Billiard

UVA - 10387 Billiard

坑死我了,一直 WA ,原来是pi小数点后面的位不够多。

题目大意:一个球从桌子中央以一定角度和初速度射出,与桌子的横边和竖边相撞 m 、n次,求初速度和角度。

解题思路:看了好半天才反应过来。分解速度为横和竖两个方向,能回到原来的位置,即水平路程和竖直路程都是横边和竖边的整数倍。

注意点:PI要写足!一开始写3.14159就 WA ,以后再这样能记得多少位就写多少位。
或者,pi的计算:double pi = atan(1.0)*4.0;

#include<cstdio>
#include<math.h>
int main() {
  int a , b ,s ,m ,n;
  double ang, v , l1 ,l2;
  while( scanf("%d%d%d%d%d",&a,&b,&s,&m,&n), a || b || s || m || n) {
    l1 = a * m ;
    l2 = b * n ;
    v = sqrt( l1*l1 + l2*l2 )/s;
    ang = (atan( l2/l1 )/3.1415926)*180;
    printf("%.2lf %.2lf\n",ang,v);
  }
  return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值