菜雞學C語言之真心話大冒險

2022-08-22 15:09:10 字數 1004 閱讀 4294

leslie非常喜歡真心話大冒險的遊戲。這一次遊戲的規則有些不同。每個人都有自己的真心話,一開始每個人也都只知道自己的真心話。每一輪每個人都告訴指定的乙個人他所知道的所有真心話,那麼leslie想知道,多少輪後他能知道所有人的真心話呢?題目保證資料有解。

第一行乙個數n,表示一共有n個人,編號為1~n, leslie為第n個人。n<=1000

第二行有n個數,第i個數表示第i個人要傳遞真心話的物件。

輸出乙個數x,表示第x輪後leslie知道了所有的真心話。

4

2 4 2 1

2

寫在前面:

相信有c語言基礎的同學都不難理解遞迴。舉個簡單的例子:從前有座山,山里有座廟,廟裡有個和尚,和尚在講故事,從前有座山,山里有座廟,廟裡有個和尚,和尚在講故事,從前有座山...

遞迴是我們經常用到的演算法,當熟悉遞迴的做法以及題目的思路時,遞迴經常可以簡化**量。當然,遞迴也有他的弊端,那就是遞迴是乙個不斷深入的過程,在這過程中它每次都需要開闢一塊棧空間來儲存,使得遞迴的執行效率通常較低。當然,理論上,每個遞迴演算法都可以轉化為非遞迴(迴圈)來實現。

題目分析:在每一輪當中,每個人告訴他要告訴的人他知道的真心話(好拗口)。

注意:在這一輪結束後,大家同時知道新的真心話。因為我在看有的**時發現有同學用迴圈實現時通常會為大家知道真心話新增順序,即在同一輪中,如果乙個人知道新的真心話後,他接下來也會把這個真心話告訴他要告訴的人,但這其實是不對的。

遞迴,看程式即可。

#include#define max 1005

#define max(a,b) (a>b?a:b)

int n, pass[max]; //

pass陣列用來儲存他要告訴真心話的人

int fun(int

x)int

main()

菜雞學逆向 IDA Python

學逆向必不可少的要使用指令碼,比來比去還是覺得idapython要比idc用著習慣一點,東拼西湊弄來了大體用法,權當自己總結下來好查資料,如果能幫到正在讀文章的你就更好了。十六進製制獲取當前位置的位址 hex here 或者hex idc.screenea 二者相同 獲取位址的最大值和最小值 hex...

菜雞日記 C語言學習之函式 2

自己呼叫自己,感覺和迴圈差不多。但是有些問題遞迴更好理解,迴圈不太好理解。但是遞迴需要的空間更多。因為每次呼叫自己都要開闢一塊新的空間。什麼情況下可以用遞迴?解決問題的思路,轉化為問題本身類似的問題時,可以採用遞迴 是不是所有的遞迴問題,c語言都支援呢?不是的 c語言支援的遞迴,要滿足以下條件 1 ...

C 菜雞上分記錄01

string.isnullorwhitespace a 字串a是 null 空還是僅由空白字元組成 compareto if s1.compareto s2 1 或者 string.compare s1,s2 當s1 s2時,1 當s1 s2時,0 當s1.find 檢索與指定匹配的第乙個元素 fi...