【发布时间】:2021-01-18 15:20:19
【问题描述】:
我不知道为什么我的函数需要两个参数,当给定两个参数时,会返回一个错误,说我只给了一个参数。我正在尝试获取斐波那契算法的输出,然后将其乘以第二个用户输入。
谢谢
29 def population(n,k):
30 n = int(sys.argv[1])
31 k = int(sys.argv[2])
32
33 if n in range (1,10000):
34 pass
35 else:
36 print("day out of range")
37 if k in range(1,10000):
38 pass
39 else:
40 print("growth rate out of range")
41 FibArray = [0,1]
42
43 #reproduction rate is Fn=F(n-1)+F)n-2)
44 #start fibonacci sequence on one and end on the nth day, multiply by the rate or reproduction
45 while len(FibArray) < n + 1:
46 FibArray.append(0)
47
48 if n <=1:
49 return n
50 else:
51 if FibArray [int(n)-1]==0:
52 FibArray[n-1]=population(n-1)
53
54 if FibArray[n-2]==0:
55 FibArray[n-2]=population(n-2)
56
57 FibArray[n]= FibArray[n-2] + FibArray[n-1]
58 X = FibArray[n]
59 return k * X
60
61 if __name__=="__main__":
62 n = int(sys.argv[1])
63 k = int(sys.argv[2])
64 pop = population(n, k)
65 print("Your population size on day {} is {}".format(n,pop))
Traceback (most recent call last):
File "./fibonacci.py", line 64, in <module>
pop = population(n, k)
File "./fibonacci.py", line 55, in population
FibArray[n-2]=population(n-2)
TypeError: population() takes exactly 2 arguments (1 given)
【问题讨论】:
标签: dynamic dynamic-programming fibonacci indexoutofrangeexception