(选做)在海军节开幕式上,有A、B、C三般军舰要同时开始鸣放礼炮各21响。已知A肌每隔5秒放1次,B舰每隔6秒放1次,C舰每隔7秒放1次。假设各炮手对时间的掌握非常准确,请编程计算观众总共可以听到几次礼炮声。
#include <stdio.h>
int main()
{
int t = 0, cnt = 0;
int fa = 1, fb = 1, fc = 1;
do{
if((fa-1)*5==t&&(fb-1)*6==t&&(fc-1)*7==t){
fa++;fb++;fc++;cnt++;
}
else if((fa-1)*5!=t&&(fb-1)*6==t&&(fc-1)*7==t){
fb++;fc++;cnt++;
}
else if((fa-1)*5==t&&(fb-1)*6!=t&&(fc-1)*7==t){
fa++;fc++;cnt++;
}
else if((fa-1)*5==t&&(fb-1)*6==t&&(fc-1)*7!=t){
fa++;fb++;cnt++;
}
else if((fa-1)*5==t&&(fb-1)*6!=t&&(fc-1)*7!=t){
fa++;cnt++;
}
else if((fa-1)*5!=t&&(fb-1)*6==t&&(fc-1)*7!=t){
fb++;cnt++;
}
else if((fa-1)*5!=t&&(fb-1)*6!=t&&(fc-1)*7==t){
fc++;cnt++;
}
if(fa==22) fa=-1;
if(fb==22) fb=-1;
if(fc==22) break;
} while (++t);
printf("%d",cnt);
} #include <stdio.h>
int main()
{
int n = 21 * 3;
int i = 5;
while (i <= 21 * 5) {
if (i % 5 == 0 && i % 6 == 0) {
--n;
if (i % 7 == 0) {
--n;
}
i += 5;
} else if (i % 5 == 0 && i % 7 == 0) {
--n;
i += 5;
} else if (i % 6 == 0 && i % 7 == 0) {
--n;
i += 6;
} else {
++i;
}
}
while (i <= 21 * 6) {
if (i % 6 == 0 && i % 7 == 0) {
--n;
i += 7;
} else {
++i;
}
}
printf("n=%d\n", n);
return 0;
}