概述
其实这是一道很简单的题,但没有想到trick,导致写的很复杂,其实有很简单的做法
题面:
在腾讯课堂的物理课上,进行了一个有趣的物理实验。
在一个长度为 LL 米的光滑轨道上,小车 A 在 0 时刻以 1m/s 的速度从左端出发向右运动,小车 B 在 t 时刻以 1m/s 的速度从右端出发向左运动,两个小车的质量相等。假设所有碰撞都是弹性碰撞,也就是当两个小车相向碰撞时,他们各自会以原来的速度向相反的方向运动;小车和轨道两端发生碰撞时,小车会以原速度向反方向运动。
试求出 T 时刻的时候,两个小车相距多远。
输入格式
输入三个整数L(1≤L≤1000), t(0≤t≤1000),T(t≤T≤1000)。
输出格式
输出 T 时刻两车之间的距离。
样例输入1
10 4 7
样例输出1
0
样例输入2
8 3 9
样例输出2
5
大致思路:
其实很简单,每次碰撞之后相当于没有碰撞的状态,只不过是小球的编号发生了交换。
就可以理解为两个小球不发生碰撞,这样就很好进行模拟了。
代码:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int x,y,l,t,cnt=1,aim,ans=0;
cin>>l>>t>>aim;
x=0;y=l;
bool flag1=true,flag2=true;
while(cnt<=aim)
{
if(flag1)
x++;
else
x--;
if(x==0||x==l)
flag1=!flag1;
if(cnt>t){
if(flag2)
y--;
else
y++;
}
if(y==0||(y==l&&cnt>t))
flag2=!flag2;
cnt++;
}
cout<<abs(x-y)<<endl;
return 0;
}
最后
以上就是眼睛大酒窝为你收集整理的5.27计蒜客网络初赛A题 腾讯课堂的物理实验的全部内容,希望文章能够帮你解决5.27计蒜客网络初赛A题 腾讯课堂的物理实验所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复