海军开幕式
**题目描述** 在海军节开幕式上,有三ABC三艘军舰要同时开始鸣放礼炮各21响。
已知A舰每隔5秒放一次,B舰每隔6秒放一次,C舰每隔7秒放一次。
假设各炮手对时间的掌握非常准确,请编程计算观众总共听到几次礼炮声。
代码
#include <stdio.h>
int main(){
int n = 0, t;
for(t = 0; t<= 21 * 7; t++){
if(t %5 == 0 && t<= 20*5){
n++;
continue;
}
if(t %6 == 0 && t<= 20*6){
n++;
continue;
}
if(n %7 == 0){
n++;
}
}
printf("%d", n);
return 0;
}
解题思路
用n作为听到的礼炮声响的计数器,用t表示时间,从第0秒开始放第一响,A舰放完最后一响,最长时间为20 x 5秒,同理B、C。因此可以用一个for循环来模拟时间的变化。注意:当有两舰或三舰同时鸣放时,应作为1响统计,即n不能同时计数。