C练习——21响三方礼炮重叠计数

2024-01-08 17:00:34

题目:

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

解析:

count作为观众听到礼炮声次数,时间轴 t 从第 0s 开始,此时三方同响,count++,往后ABC各按间隔每方都响满20次为止,while循环t,对于礼炮A,如果t 是5的整数,则响,BC同理。

注意一个时间点上,只要ABC有一个响,count++,时间终点以C为准

逻辑:

while循环时间t,if判断count++,t++,t>20*7终止,

参考代码:

// 在海军开幕式上,有A、B、C三艘军舰要同时开始鸣放礼炮各21响。
// 已知A舰每隔5秒放1次,B舰每隔6秒放1次,C舰每隔7秒放1次。
// 假设各炮手对时间的掌握非常准确,请编程计算观众总共可以听到几次礼炮声。
#include <stdio.h>
int main()
{
	int t = 0;
	int count = 0; // 注意:0s,ABC齐响
	while (t<=20*7)
	{
		if ((t % 5 == 0 && t<= 20*5 )|| (t % 6 == 0 && t<= 20*6 ) || (t % 7 == 0 && t<= 20*7)) // A||B||C
		{
			count++;
		}
		t++;
	}
	printf("共听%d次礼炮声,用时%ds\n", count, t);
	return 0;
}

运行结果:

文章来源:https://blog.csdn.net/2301_76271519/article/details/135454342
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。