4
我想寫一個樹生長算法,其中樹每年經歷2個週期的增長。第一個生長週期發生在春季,當時它的高度加倍。第二個生長週期發生在夏季,其高度增加1米。樹生長算法
我現在的問題是,現在,一棵新的樹種植在春天的開始。它的高度是1米。我想在N個生長週期後找到樹的高度?
我正在做一些關於遞歸函數的研究,其中函數調用它自己。我在這裏讓你編寫的代碼更優雅,更簡單,然後循環。我有問題,執行該功能雖然
n = input('How long would you like the tree to for?: ')
def cycle(n):
if n == 0:
n = + 1
return n
print '/n' # The reason for all the '/n' is just for neatness.
print('The tree will be ' + n + 'Ft tall')
elif n % 2 == 0:
n = 1 + cycle(n - 1)
return n
print '/n'
print('The tree will be ' + n + 'Ft tall')
elif n % 2 != 0:
n = 2 * cycle(n - 1)
return n
print '/n'
print('The tree will be ' + n + ' Ft tall')
cycle(n)
什麼是n?週期數或其高度?另外,由於您在打印之前返回,所以'print's不起作用。 – Lafexlos
該計劃是讓'n'多久你會希望這棵樹多年生長。但1年= 2個週期。夏季樹木生長+ 1米,樹木* 2高度的春天。 –
你正在從用戶那裏得到最終高度,所以你想要返回什麼?樹會在多少個週期內達到/接近該高度('n')?在OP中,你說「我想在N次增長週期後找到樹的高度」,但是在代碼中,你正在獲得高度本身,這導致了一些混淆 - 至少對我而言。 – Lafexlos