蓝桥杯 历届试题 蚂蚁感冒
2016-03-14 17:09
225 查看
问题描述
长100厘米的细长直杆子上有n只蚂蚁。它们的头有的朝左,有的朝右。
每只蚂蚁都只能沿着杆子向前爬,速度是1厘米/秒。
当两只蚂蚁碰面时,它们会同时掉头往相反的方向爬行。
这些蚂蚁中,有1只蚂蚁感冒了。并且在和其它蚂蚁碰面时,会把感冒传染给碰到的蚂蚁。
请你计算,当所有蚂蚁都爬离杆子时,有多少只蚂蚁患上了感冒。
输入格式
第一行输入一个整数n (1 < n < 50), 表示蚂蚁的总数。
接着的一行是n个用空格分开的整数 Xi (-100 < Xi < 100), Xi的绝对值,表示蚂蚁离开杆子左边端点的距离。正值表示头朝右,负值表示头朝左,数据中不会出现0值,也不会出现两只蚂蚁占用同一位置。其中,第一个数据代表的蚂蚁感冒了。
输出格式
要求输出1个整数,表示最后感冒蚂蚁的数目。
样例输入
3
5 -2 8
样例输出
1
样例输入
5
-10 8 -20 12 25
样例输出
3
长100厘米的细长直杆子上有n只蚂蚁。它们的头有的朝左,有的朝右。
每只蚂蚁都只能沿着杆子向前爬,速度是1厘米/秒。
当两只蚂蚁碰面时,它们会同时掉头往相反的方向爬行。
这些蚂蚁中,有1只蚂蚁感冒了。并且在和其它蚂蚁碰面时,会把感冒传染给碰到的蚂蚁。
请你计算,当所有蚂蚁都爬离杆子时,有多少只蚂蚁患上了感冒。
输入格式
第一行输入一个整数n (1 < n < 50), 表示蚂蚁的总数。
接着的一行是n个用空格分开的整数 Xi (-100 < Xi < 100), Xi的绝对值,表示蚂蚁离开杆子左边端点的距离。正值表示头朝右,负值表示头朝左,数据中不会出现0值,也不会出现两只蚂蚁占用同一位置。其中,第一个数据代表的蚂蚁感冒了。
输出格式
要求输出1个整数,表示最后感冒蚂蚁的数目。
样例输入
3
5 -2 8
样例输出
1
样例输入
5
-10 8 -20 12 25
样例输出
3
#include<stdio.h> #include<math.h> int main() { int i,j,n,a,t,b=0,c=0; scanf("%d",&n); scanf("%d",&a); for(i=1; i<n; i++) { scanf("%d",&t); if(abs(t)>abs(a)&&t<0) b++; else if(abs(t)<abs(a)&&t>0) c++; } int k=1; if((a>0&&b>0)||a<0&&c>0) k+=b+c; printf("%d\n",k); return 0; }
相关文章推荐
- 苹果开发:开发证书都显示“此证书的签发者无效”的解决方法
- Java中abstract和interface的区别
- 如何在一台电脑上运行两个或多个Tomcat
- RHCS(测试篇)
- 系统分析师模拟题
- socket
- 《加州理工学院公开课:机器学习与数据挖掘》第2讲学习笔记
- SpringMVC源码总结(二)mvc:annotation
- 初涉bootstrap:bootstrap 插件
- Android 编程下获得应用程序的签名
- 编译kernel perl版本bug
- iOS 蓝牙 技术
- XCode的 Stack Trace,调试时抛出异常,定位到某一行代码
- [转]ORA-00907: 缺失右括号
- RHCS(实战篇)
- Android设计模式系列(8)--SDK源码之工厂方法模式
- android 拍照 图片剪切
- 搜索 -- grep
- 关于录像默认旋转90度的问题
- SQL sever 2008自动备份