我有一些CS訓練測試的練習題。你能解釋如何得到正確答案嗎?執行此功能時打印什麼?
我不確定這是什麼編程語言,但我嘗試將這些問題轉換爲python來理解這些意思。 enter image description here
這裏是我在python中的嘗試來解決這個問題,但似乎沒有得到正確的代碼,因爲我沒有得到值。 enter image description here
我有一些CS訓練測試的練習題。你能解釋如何得到正確答案嗎?執行此功能時打印什麼?
我不確定這是什麼編程語言,但我嘗試將這些問題轉換爲python來理解這些意思。 enter image description here
這裏是我在python中的嘗試來解決這個問題,但似乎沒有得到正確的代碼,因爲我沒有得到值。 enter image description here
你寫
if n >= 0:
,你應該寫
if n >= 4:
而且,這裏的關鍵是函數遞歸調用本身。取而代之的
return n/2
你只需要
f(n/2)
否則,你return
打印,這是不是原來的代碼做什麼之前。
最後,演練。所以你從f(16)
開始,並且由於16大於4,它調用f(16/2)
,並且在內部,由於8大於4,所以叫f(8/2)
,而且很細,因爲4大於或者等於 4,最後一次它調用f(4/2)
,在此期間它終於獲得有史以來的第一個print
聲明,打印2
,然後回到父函數,打印4
等等,直到它打印16
並完成。
好的,謝謝。現在python只打印2.0有沒有辦法讓python打印函數中的所有值?(2,4,8,16) – julian
您應該在問題中包含所有相關文本。你不應該喜歡包含代碼的圖像。 –
這看起來像_你能爲我做我的作業_有點問題,我們不在這裏爲你工作。如果你需要幫助解決問題,請說明你的問題和你的嘗試。如果你可以添加一些代碼。它比形象更容易。 – Nicolas