当前位置:   article > 正文

【2024蓝桥杯/C++/B组/小球反弹】

【2024蓝桥杯/C++/B组/小球反弹】

题目

分析

Sx = 2 * k1 * x;

Sy = 2 * k2 * y; (其中k1, k2为整数)

Vx * t = Sx;

Vy * t = Sy;

k1 / k2 = (15 * y) / (17 * x);

目标1:根据k1与k2的关系,找出一组最小整数组(k1, k2)(为什么最小?因为题目求第一次返回!这实际上是一个循环过程!)

目标2:求出Sx,Sy,再根据勾股定理求S

代码

  1. #include<bits/stdc++.h> // 引入所有的标准库头文件
  2. using namespace std; // 使用标准命名空间 std 中的标识符
  3. // 定义常量 x 和 y 的值
  4. const int x = 343720;
  5. const int y = 233333;
  6. int main()
  7. {
  8. // 计算 k1 和 k2 的值,k1 等于 15 乘以 y,k2 等于 17 乘以 x
  9. int k1 = 15*y, k2 = 17*x;
  10. // 计算 k1 和 k2 的最大公约数,并将其赋值给 gcd
  11. int gcd = __gcd(k1, k2);
  12. // 将 k1 和 k2 分别除以它们的最大公约数
  13. k1 /= gcd, k2 /= gcd;
  14. // 计算 sx 的值,sx 等于 2 乘以 k1 乘以 x
  15. double sx = 2*k1*x;
  16. // 计算 sy 的值,sy 等于 2 乘以 k2 乘以 y
  17. double sy = 2*k2*y;
  18. // 根据勾股定理计算 s 的值
  19. double s = sqrt(sx*sx + sy*sy);
  20. // 输出 s 的值,保留两位小数
  21. printf("%.2f", s);
  22. // 返回 0,表示程序正常结束
  23. return 0;
  24. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/天景科技苑/article/detail/924483
推荐阅读
相关标签
  

闽ICP备14008679号