这时上次的C++一维数组练习:C++一维数组练习oj-CSDN博客
这到题目我承认非常难!当然这只是我认为,因为我只学到了一维数组!
对于你们来说可能不难。
好了我不客套了。
这题我们可以将他理解为一条时间轴:
时间轴上小李每1秒打出一颗子弹,小明每2秒打出一颗子弹。4,7,10,13
#include<cstdio> int s,t1,t2;//子弹颗数,小明打枪间隔,小李打枪间隔 int p1,p2,sum;//小明子弹时间定位,小李子弹时间定位,sum用于统计 int a[3010]; int main(){scanf("%d%d%d",&s,&t1,&t2);a[1]=1;//统计第一秒的枪声p1=1+t1+1;//小明第二颗子弹定位p2=1+t2+1;//小李第二颗子弹定位for(int i=1;i<=n;i++){a[p1]=1;a[p2]=1;p1=p1+t1+1;//小明第二课子弹定位p2=p2+t2=1;//小李第二颗子弹定位}//统计枪声for(int i=1;i<=n;i++){if(a[i]==1){sum++;}}rteurn 0; }
为什么要加1?我已经试过了,不加1是错的。看题目要看仔细虽然题目只跟你说了 :设小明后面的子弹每隔t1秒打出一枚子弹,小李后面的子弹每隔t2秒打出一枚子弹。但是题目也说了:
如t1=2时,则后面子弹打出的时刻分别为4,7,10,13......
与本身有偏差的数据我们必须要加以分析!
可以看出题目给出的样例数据与题目本身给出的条件相差1秒,所以!
才要这样子操作: