我正在尝试制作一个程序来找到1 <n <10 ^ 19的第n个Fibonacci数.
这是我使用动态编程的代码.
memo = {}
def fib(n):
if n in memo:
return memo[n]
if n <= 2:
f = 1
else:
f = fib(n-1) + fib(n-2)
memo[n]=f
return f
print fib(input()) % 1000000007
Run Code Online (Sandbox Code Playgroud)
我的代码似乎不适用于大数字.我得到无效的响应错误.有什么建议?
我试图解决一个问题,我必须猜测1到2*10 ^ 9之间的数字,只知道它是否高于或低于我之前的猜测.
现在我有一个适用于所有情况的代码,但它超过了猜测限制,只有31.
status = ""
high = 2000000000
low = 1
num = low
print num
while 1:
status= raw_input()
if status== "OK":
break
elif status == "Higher":
low = num
elif status == "Lower":
high = num
num = int((high+low)/2)
print num
Run Code Online (Sandbox Code Playgroud)
我正在做的是从我的第一个猜测的最低数字开始,并根据响应重置低和高.
你能帮我找到更快的方法吗?