2
產生整數的順序我有一個基本遞歸函數,將基本上打印出線路給定的一個輸入數字的數字。反轉由遞歸
def formula1(distance):
if distance == 1:
print(int(distance))
return
elif (distance % 2) == 0:
print(int(distance), end=" ")
return formula1(distance/2)
elif (distance % 2) == 1:
print(int(distance), end=" ")
return formula1(3*distance + 1)
我必須現在反向打印數字,它不是一個字符串或列表。我真的不確定如何做到這一點,聲明一個新的臨時變量會被覆蓋。而在參數中定義一個變量將無濟於事......
在上面的函數中,顯然print()行將不得不被刪除,但是我不確定如何替換而不嘗試反向計算整個計算。
例, 一級方程式(5)打印出5 16 8 4 2 1
我需要它打印出來1 2 4 8 16 5
請提供一些示例輸出,以及你正在努力實現的(例子)的東西。 – mmenschig
如果你的意思是在這裏做遞歸時,這是非常不好實現。首先,函數返回不同情況下的不同「事物」。其次,調用函數沒有使用返回值(即它被「報廢」;那麼返回它的意義是什麼?)。 –
而不是打印,當您去,您可以返回一個數組,只是打印。可能更容易思考。 – code11