->> 在庆祝活动中,A,B,C三艘军舰要同时开始鸣放礼炮21响,已知A每隔5秒放一次,B每隔6秒放一次,C每隔7秒放一次,假设各炮手把握时间准确,请问观众共可以听到多少次?
->>思路, n为炮声计数器,t为时间,0秒开始为第一响,知道最后结束,此时为20*7。因此,用循环模拟时间变化,t从0到t>20*7结束,在循环里进行判断,t如果是5的倍数且21未放完,则A放一响,n+1,如果t是6的倍数且21响未放完,则B放一响,n+1,C同理,但要注意的是,当2舰或3舰同时鸣炮,应记1响。
答案为 54 。
#include<iostream> using namespace std; int main() { int n=0; int t; for(int t=0;t<=20*7;t++) { if(t % 5==0 && t<=5*20) { n++; continue; } if(t%6 ==0&& t<=6*20) { n++; continue; } if(t%7==0) { n++; continue; } } cout<<n<<endl; return 0; }