學技術,重在日拱一卒,一點一滴的積累。
今天,我們一起來分析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 (18.16 KB, 下載次數: 70)
下載附件
2022-9-23 14:32 上傳
|