参考代码:
#include<iostream> #include<math.h> using namespace std; int main() { /* 1.蚂蚁移动碰面后转向可以理解为穿行,也就是继续沿着原来方向移动, 不在意转向问题,区别在于,没有感染的蚂蚁相遇状态不变,相当于没有碰面,和没有碰面一样; 而被感染的蚂蚁在碰面后,两者状态都是被感染,其余不需要在乎。 具体可以看有个大佬画的图的题解,这样碰面后就只会影响是否被感染*/ /*2.那么理解这个思维后,问题就简单了,所有蚂蚁都不会转向,如图这些蚂蚁会被感染*/ int n; cin>>n; // 用数组装初始蚂蚁位置 int a[50]; int count=1; for(int i=0;i<n;i++){ cin>>a[i]; } for(int i=1;i<n;i++){ // 注意位置的绝对值是距离杆子左端的距离,不要直接比较 // 感染源向左,感染蚂蚁=所有向右且位置绝对值比感染源小的+向左同时位置绝对值比感染源大 if(a[0]<0&&a[i]>0&&fabs(a[i])<fabs(a[0])||a[0]<0&&a[i]<0&&fabs(a[i])>fabs(a[0])){ count++; } // 感染源向右,感染蚂蚁=所有向左且绝对值比感染源大的+向右同时位置绝对值比感染源小 if(a[0]>0&&a[i]<0&&fabs(a[i])>a[0]||a[0]>0&&a[i]>0&&a[i]<a[0]){ count++; } } cout<<count; return 0; }
0.0分
2 人评分
C语言程序设计教程(第三版)课后习题7.2 (Java代码)浏览:694 |
数组输出 (C语言代码)浏览:811 |
C语言程序设计教程(第三版)课后习题7.3 (C语言代码)浏览:1215 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:863 |
Hello, world! (C++代码)浏览:1778 |
C语言程序设计教程(第三版)课后习题8.4 (C语言代码)浏览:541 |
C语言程序设计教程(第三版)课后习题4.9 (C语言代码)浏览:727 |
C语言程序设计教程(第三版)课后习题11.3 (C语言代码)浏览:644 |
C二级辅导-分段函数 (C语言代码)浏览:659 |
复数求和 (C语言代码)浏览:995 |