您的位置:首页 > 游戏 > 游戏 > 【2024蓝桥杯/C++/B组/小球反弹】

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

2024/11/18 17:45:40 来源:https://blog.csdn.net/m0_73669127/article/details/140870049  浏览:    关键词:【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

代码

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

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com