设为首页收藏本站language 语言切换
查看: 1139|回复: 1
收起左侧

[分享] C语言的算法:放礼炮

[复制链接]
发表于 2022-9-23 14:31:31 | 显示全部楼层 |阅读模式

学技术,重在日拱一卒,一点一滴的积累。

今天,我们一起来分析C语言的算法:放礼炮。

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

编程思路

编程思路:

1、先定义一个变量来记录当前的时间值,通过对时间的分析,来判断是否有礼炮声。分析题目,我们可以知道军舰C最后完成放礼炮,即可以以军舰C停止的时间作为时间判断的终点。判断在C停止之前,有多少声礼炮。

2、由于三个军舰的礼炮具有一定的时间周期,就会存在一个时间点,放好几个礼炮的可能性,但是对于我们而言那就是一声礼炮的声音。

3、即对于礼炮声,同一个时间点,只会有一声礼炮,也就是多选一的情况,要么就都不响,要么就是当前时间点只响一下,可以用if-else if选择语句实现。

程序范例

#include <stdio.h>

int n, t;   

int main()

{

  n = 0;     

  for (t=0; t<=20*7; t++)            

  {

    if ((t%5 == 0) && (t <= 20*5))   

    {

       n++;                 

     }

    else if ((t%6 == 0) && (t <= 20*6))   

    {

      n++;                 

    }

    else if (t%7 == 0)                  

    {

       n++;

     }

  }

  printf("礼炮声n = %d\n", n);

}

程序运行结果:
1.jpg

您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2025-2-1 08:44 , Processed in 0.080379 second(s), 12 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

快速回复 返回顶部 返回列表