愤怒小鸟

题目描述

题目来源:2016年蓝桥杯国赛

本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。

X 星球愤怒的小鸟喜欢撞火车!

一根平直的铁轨上两火车间相距 100010001000 米 两火车 (不妨称 A 和 B) 以时速 101010米/秒 相对行驶。

愤怒的小鸟从 A 车出发,时速 505050 米/秒,撞向 B 车, 然后返回去撞 A 车,再返回去撞 B 车,如此往复.... 两火车在相距 111 米处停车。

问:这期间愤怒的小鸟撞 B 车多少次?

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 128M

思路:1. 分别 i(初始化为0),j(初始化为1000) ,k(初始化为0,表示从A车出发) 用三个坐标表示A车、B车、小鸟的位置;

          2. 用d表示A车和B车间的距离,初始化为 j - i 即1000;

          3. 用循环来模拟A车、B车的行驶以及小鸟的飞翔,计算每次小鸟撞火车时三者的坐标和d的值从而判断是否停止(当d不大于1时停止);

          4. 用一个整数c来模拟小鸟的飞行方向,每次撞车后c++;初始化为0,c为偶数时表示从A车出发,飞向B车;c为奇数时表示从B车出发,飞向A车;

//2016g 愤怒小鸟   
#include <iostream>   vxgzh:xtsn
using namespace std;
int main()
{
	
	double i,j,k,d,t;
	int c=0;	//c=0表示一开始小鸟本次从A车出发,朝B车飞去,即下次撞向B车 
	int c1=0;  //c1统计装B车的次数 
	i=0;   //i表示A车的位置,初始为0 
	j=1000; //j表示B车的位置,初始为1000
	d=j-i;  //d表示A、B两车间的距离 
	k=i;
	while(d>1)
	{
		if(c%2==0)  //从A车出发 
			k=i;
		else    //从b车出发 
		{
			k=j;c1++;  //c1统计撞B车的次数 
		}
			
		t=d/60;   //每一次的行驶时间,60=10+50;
		i+=t*10;   //a车的位置 
		j-=t*10; 	//b车的位置 
		d=j-i;    //a、b车的距离 
		c++;   //用于小鸟变换方向 
	}
	cout<<c1<<endl;
	return 0;
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值