有趣的c語言例題之螞蟻感冒

2021-08-31 00:15:49 字數 954 閱讀 7915

歷屆試題 螞蟻感冒

時間限制:1.0s 記憶體限制:256.0mb

問題描述

長100厘公尺的細長直桿子上有n只螞蟻。它們的頭有的朝左,有的朝右。

每只螞蟻都只能沿著桿子向前爬,速度是1厘公尺/秒。

當兩隻螞蟻碰面時,它們會同時掉頭往相反的方向爬行。

這些螞蟻中,有1只螞蟻感冒了。並且在和其它螞蟻碰面時,會把感冒傳染給碰到的螞蟻。

請你計算,當所有螞蟻都爬離桿子時,有多少只螞蟻患上了感冒。

輸入格式

第一行輸入乙個整數n (1 < n < 50), 表示螞蟻的總數。

接著的一行是n個用空格分開的整數 xi (-100 < xi < 100), xi的絕對值,表示螞蟻離開桿子左邊端點的距離。正值表示頭朝右,負值表示頭朝左,資料中不會出現0值,也不會出現兩隻螞蟻占用同一位置。其中,第乙個資料代表的螞蟻感冒了。

輸出格式

要求輸出1個整數,表示最後感冒螞蟻的數目。

樣例輸入

35 -2 8

樣例輸出

解題思路:

當感冒螞蟻最初的頭朝向那邊,只要與感冒螞蟻對頭的螞蟻,終會與感冒螞蟻碰頭或者使其他螞蟻與感冒螞蟻碰頭。

如果感冒螞蟻最初頭朝向那邊,沒有與其對頭的螞蟻,那麼感冒螞蟻就會隨前面螞蟻依次出去。

如果感冒螞蟻最初頭朝向那邊,有與其對頭的,那就會影響尾部那邊,與其同向的螞蟻。

當感冒的螞蟻最初是向右爬行時:

先判斷右邊螞蟻有沒有和它對頭的,如果沒有輸出1(不必再判斷左邊的)。

如果有,則將右邊對頭的個數和左邊同向的個數相加再加1。

向左爬相似

#include

#include

int main()

if(a[0]>0)

}if(o==0) printf("%d",o+1);

else printf("%d",o+p+1);

return 0;

}

有趣c例題之感冒

有趣的c語言例題螞蟻感冒 歷屆試題 螞蟻感冒 時間限制 1.0s 記憶體限制 256.0mb 問題描述 長100厘公尺的細長直桿子上有n只螞蟻。它們的頭有的朝左,有的朝右。每只螞蟻都只能沿著桿子向前爬,速度是1厘公尺 秒。當兩隻螞蟻碰面時,它們會同時掉頭往相反的方向爬行。這些螞蟻中,有1只螞蟻感冒了...

藍橋杯 螞蟻感冒(C語言)

長100厘公尺的細長直桿子上有n只螞蟻。它們的頭有的朝左,有的朝右。每只螞蟻都只能沿著桿子向前爬,速度是1厘公尺 秒。當兩隻螞蟻碰面時,它們會同時掉頭往相反的方向爬行。這些螞蟻中,有1只螞蟻感冒了。並且在和其它螞蟻碰面時,會把感冒傳染給碰到的螞蟻。請你計算,當所有螞蟻都爬離桿子時,有多少只螞蟻患上了...

C語言函式之經典例題

printf函式返回值型別 返回值是輸出的字元數量,包括數字,字母,標點符號,空格等 如 define crt secure no warnings 1 include intmain 結果輸出4321寫一函式判斷乙個數是否是素數 define crt secure no warnings 1 in...