Я пытаюсь решить Problem #25 on Project Euler. Вот что у меня до сих пор:Что случилось с моим генератором последовательности Фибоначчи?
def fibonacci(length):
fibs = [0,1]
while length > len(fibs):
fibs.append(fibs[-1] + fibs[-2])
return fibs
fibs = fibonacci(5000)
for i in fibs:
if len(str(i)) > 1000:
print i
## The location of the number in the Fibonacci set.
print [j for j, x in enumerate(fibs) if x == i]
Каждый номер я проверил на (в том числе некоторых large ones) выходит с матчем, но Project Euler не принимает ответ я получаю.
Я прочитал, что ответ является 4782th числа, но я получаю, что первый номер с более чем 1000 цифр является 4787th,
11867216745258291596767088485966669273798582100095758927648586619975930687764095025968215177396570693265703962438125699711941059562545194266075961811883693134762216371218311196004424123489176045121333888565534924242378605373120526670329845322631737678903926970677861161240351447136066048164999599442542656514905088616976279305745609791746515632977790194938965236778055329967326038544356209745856855159058933476416258769264398373862584107011986781891656652294354303384242672408623790331963965457196174228574314820977014549061641307451101774166736940218594168337251710513138183086237827524393177246011800953414994670315197696419455768988692973700193372678236023166645886460311356376355559165284374295661676047742503016358708348137445254264644759334748027290043966390891843744407845769620260120918661264249498568399416752809338209739872047617689422485537053988895817801983866648336679027270843804302586168051835624516823216354234081479331553304809262608491851078404280454207286577699580222132259241827433
и Проект Эйлер говорит каждый ответ, который я пытался это неправильно. (Очевидно, я еще не пытался 4782, так как это было бы обманом.)
Я дразняще близко, и, очевидно, что-то идет не так, но что?
Вы должны вернуться и снова прочитать вопрос. Я подозреваю, что вам не хватает чего-то очень тонкого в вопросе. –
Я думаю, что быстрее получить длину числа, используя 'math.floor (math.log10 (n)) + 1' –