# Uses python3
# Given two integers n and m, output Fn mod m (that is, the remainder of Fn when divided by m
def Huge_Fib(n,m):
if n == 0 : return 0
elif n == 1: return 1
else:
a,b = 0,1
for i in range(1,n):
a, b = b, (a+b) % m
print(b);
n,m = map(int, input().split());
Huge_Fib(n,m);
コードは非常にうまく機能します。しかし、n = 99999999999999999、m = 2のようなケースを実行すると、時間がかかります。もっと良い解決策はありますか?Python:巨大なフィボナッチ数を計算するm
ええと、あなたは何を期待していますか?あなたは私の範囲(1,99999999999999999)を持っています。これはちょっとした時間をかけて繰り返します... –
私は2〜3秒以内に実行します。しかし、時間がかかります@MarcB –
より速いコンピュータを手に入れてください。 –