我想知道下面的遞迴程式是如何執行的

時間 2022-05-20 23:40:04

1樓:

他會實現提取最大的數,最小的是這樣的 函式 maxint的引數 最初是a和5,因為 k等於5不等於1,導致遞迴。後面的**一會考慮,先列出結構。

maxint(a,5)--->maxint(a,4)--->maxint(a,3)--->maxint(a,2)--->maxint(a,1)。

maxint(a,1)直接執行了return語句,導致函式提前結束,會返回 a[0]也就是 數列中第一個數。返回到maxint(a,2)裡的t中。

而 這裡因為k=2不=1,所以 第一個return沒執行,執行的之後的 return 他會把t的值(也就是返回的a[0])與a[1](a[k-1],記得麼這裡k=2)比較,返回大的那個。

之後迴圈,一直將返回的較大的值,於數列中的下一個比較,再返回較大的那個,再比較。

此程式中只比較數列中的前5個 (由max=maxint(a,5)決定)。

2樓:匿名使用者

不知道要怎麼和你說,實際上比較的過程是很簡單的

要不然你試試一步一步按照**來想想

假設 a[0-4] = 3 ,5 ,6 ,1 ,9

比如 1. maxint(a,5); >> k=5, 跳過if, t=maxint(a,5-1) ;

2. maxint(a,4); >> k=4, ,t=maxint(a,4-1);

3. maxint(a,3); >> k=3, ,t=maxint(a,3-1);

4. maxint(a,2); >> k=2, ,t=maxint(a,2-1);

5. maxint(a,1); >> k=1, return a[0];

/* 注意,開始往回 */

6. maxint(a,2); >> k=2, ,return a[k-1]>t? a[k-1]:

t; //這裡t實際上就是上面返回的a[0],k-1就是a[1]; 按照上面的假設,這裡是5>3 所以返回5

7. maxint(a,3); >> k=3, ,return a[k-1]>t? a[k-1]: t; //同上,t實際上是上面返回的5,k-1是a[2],6>5返回6

8. ………………

剩下的我相信你能搞定

我是出生的摩羯座,想知道今年我的事業運

2012年,你能夠預料到將有重要的變化在信仰底線。摩羯座的你很願意去證明某些事情,一直為了完美的生活而不懈努力著,明年,雄偉的野心會在實現很多目標上助你一臂之力。縱然改變可能會比較困難,但是在心裡的某個適當的位置上,有一種神祕的方法會對你非常有用,就在2012黑龍之年的過渡期當中。運氣在你的社交宮,...

我想知道用廣聯達怎麼畫下面的剪力牆端柱 暗柱

可以在柱 引數化柱裡面選到類似的柱子,將名稱改成和cad上面一樣的,比如輸入az 1,它就會自動識別為暗柱,然後有個截面,選擇 是 將尺寸定義好之後將截面選擇裡面柱子的鋼筋全部刪除,再點佈置角筋 以第二圖為例 在輸鋼筋那裡輸入1c22,點右鍵,就會自動布上去了,再點佈置箍筋,矩形在輸鋼筋那裡輸入b1...

我的生日是農曆我想知道我今年的運程怎樣

1988年農曆的12月初7是陽曆1989年1月14,是摩羯座 水瓶座水瓶座個性 水瓶座最大的特點就是革新,個人主義最重的一個星座,追求屬於自己獨一無二的生活方式,是他的生活態度。但他又會偏向頑固一面,有時令人捉摸不定,不過注重人道主義的水瓶座對人友善,亦重視私隱,這一切皆由於天王星的影響。創新 多變...