当前位置: 首页 > news >正文

蓝桥杯省赛真题C++B组-小球反弹

一、题目

有一长方形,长为 343720 单位长度,宽为 233333 单位长度。在其内部左上角顶点有一小球(无视其体积),其初速度如图所示且保持运动速率不变,分解到长宽两个方向上的速率之比为 dx:dy = 15:17。小球碰到长方形的边框时会发生反弹,每次反弹的入射角与反射角相等,因此小球会改变方向且保持速率不变(如果小球刚好射向角落,则按入射方向原路返回)。从小球出发到其第一次回到左上角顶点这段时间里,小球运动的路程为多少单位长度?答案四舍五入保留两位小数。


答案提交    这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个小数,在提交答案时只填写这个小数,填写多余的内容将无法得分。

二、思路

        是看别人的代码的解题思路,我们从初始位置发射这个速率,会在长和宽上都会反弹,我们可以利用两次for循环来找出在长和宽上反弹的次数,再通过次数分别算出长和宽总的路程,看其之比是否是15:17;如果是,利用勾股定理,算出斜边。

       计算长方形长边的两倍长度, 因为小球在长边反弹时,每次走过的路程是长边长度的两倍, 计算长方形宽边的两倍长度, 因为小球在宽边反弹时,每次走过的路程是长边长度的两倍。

三、代码

#include<iostream>
#include<cmath>
typedef long long LL;//定义一个类型别名,因为我们计算下来数可能非常大
// ,我们在很多地方都要用到long long ,也方便简化代码 
//长为 343720 单位长度,宽为 233333 单位长度
int main(){
	//一次反弹所对应的长边的距离 
	LL lengthDouble =  2*343720;
	//一次反弹所对应的宽边的距离 
	LL widthDouble =  2*233333;
	for(LL i = 1; i < 10000; i++){
		for(LL j = 1; j < 10000; j++){
		//(lengthDouble*i)/t      15
	//_______________________ = _______时间我们可以约掉 ,看水平路程和垂直路程是否是15:17 
		//(widthDouble*j)/t       17
			if(lengthDouble*i*17 == widthDouble*j*15){
				std::cout.precision(2);
				std::cout<<std::fixed<<std::sqrt((lengthDouble*i)*(lengthDouble*i) + (widthDouble*j)*(widthDouble*j));
				return 0; //1100325199.77
			}
		 
		}
		
	}
	return 0; 
} 

四、反思

有几个问题

  1. #include<cmath>和#include<math.h>有什么区别:cmath 里的函数和符号都被放置在 std 命名空间中,是C++的

  2. 要会使用定义类型别名的使用方法typedef long long LL;

  3. for循环的初始条件是从一开始的,如果是0,也就没有反弹,肯定不会满足15:17的速率比,

  4. 确定精度cout.precision(2)注意:这里是.

  5. 固定点表示法cout::fixed注意:这里是::

  6. 第一个return 0,是找到合适的解提前结束循环

  7. 第二个return 0,是遍历所有可能的结果后结束循环

相关文章:

  • 利用Python爬虫根据关键词获取商品列表
  • 矫平机:工业制造的“误差归零者”,如何重塑智造新生态?
  • 深入理解 Qt 系统托盘图标:创建自定义的系统托盘图标类
  • 星越L_外后视镜使用讲解
  • Python的那些事第四十五篇:继承自Nose的测试框架Nose2
  • python中的max(),需要注意的点
  • 内存泄漏的防范:检测与预防
  • nodejs42 (UI相关) : svg的viewBox属性
  • 【小沐学Web3D】three.js 加载三维模型(React)
  • 【GNU Radio】ZMQ模块学习
  • 弹球小游戏-简单开发版
  • Spring Cloud 中的服务注册与发现: Eureka详解
  • python相关语法的学习文档1
  • @restcontroller和@RequestMapping 注解的简单学习
  • kmp报错→Cannot find skiko-windows-x64.dll.sha256
  • Java线程
  • MySQL知识点
  • ollama API 本地调用
  • tsfresh:时间序列特征自动提取与应用
  • CCF CSP 第30次(2023.09)(2_坐标变换(其二)_C++)
  • 花20万骑自行车?CityRide带火“骑行经济”
  • 上海乐高乐园明天正式开售年卡,下月开启试运营
  • 默茨当选德国总理
  • 景点变回监狱,特朗普下令重新启用“恶魔岛”
  • 在海拔3980米驻守:“全国先进工作者”刘鹏与洛戈梁子警务站的9年
  • 申活观察|演出场次破纪录、入境游导游档期忙,上海文旅商“热力”拉满