Problem M. S06-21 鸣放礼炮(有意思、初学简单版)

在海军节的开幕式上,有A、B、C三艘军舰要同时开始鸣放礼炮各21响。已知A舰每隔5秒放一次,B舰每隔6秒放一次,C舰每隔7秒放一次。假设各炮手对时间的掌握非常准确,请编程计算观众总共可以听到几次礼炮声。

输入

输出

一个整型数,对应观众能听到的炮声数

个人解题思路:
理论上有63次礼炮声,但两舰同时鸣炮这种情况只算听到一次礼炮声,所以要减去1次(三舰同时鸣炮这种情况不存在,因为   5、6、7的公倍数为210超出了A舰鸣放第21响的时间——105秒)

#include <iostream>
using namespace std;
int main() 
{
	int d=0;
	for(int a=1; a<=21; a++) 
	{
		for(int b=1; b<=21; b++) 
		{
			if(a*5==b*6) 
			{
				d++;
			}
		}
	}
	
	for(int b=1; b<=21; b++) 
	{
		for(int c=1; c<=21; c++) 
		{
			if(b*6==c*7) 
			{
				d++;
			}
		}
	}
	
	for(int a=1; a<=21; a++) 
	{
		for(int c =1; c<=21; c++) 
		{
			if(a*5==c*7) 
			{
				d++;
			}
		}
	}
	int total=0;
	total=63-d;
	cout<<total;
	return 0;
}

posted @ 2022-10-03 18:58  131452lin  阅读(129)  评论(0编辑  收藏  举报