mirror of
https://github.com/TheAlgorithms/Ruby
synced 2024-11-16 19:50:00 +01:00
Merge pull request #204 from domix80/problem_025
Feat: Project Euler Problem 25
This commit is contained in:
commit
6317f2bea7
1 changed files with 44 additions and 0 deletions
44
project_euler/problem_025/sol1.rb
Normal file
44
project_euler/problem_025/sol1.rb
Normal file
|
@ -0,0 +1,44 @@
|
|||
#The Fibonacci sequence is defined by the recurrence relation:
|
||||
# Fn = Fn−1 + Fn−2, where F1 = 1 and F2 = 1.
|
||||
#Hence the first 12 terms will be:
|
||||
#
|
||||
# F1 = 1
|
||||
# F2 = 1
|
||||
# F3 = 2
|
||||
# F4 = 3
|
||||
# F5 = 5
|
||||
# F7 = 13
|
||||
# F8 = 21
|
||||
# F6 = 8
|
||||
# F9 = 34
|
||||
# F10 = 55
|
||||
# F11 = 89
|
||||
# F12 = 144
|
||||
#
|
||||
#The 12th term, F12, is the first term to contain three digits.
|
||||
#What is the index of the first term in the Fibonacci sequence to contain 1000 digits?
|
||||
|
||||
def solution(num_digits = 1000)
|
||||
#Fn = Fn−1 + Fn−2, where F1 = 1 and F2 = 1.
|
||||
resultn1 = 1
|
||||
resultn2 = 1
|
||||
result = 2
|
||||
index = 3
|
||||
value = true
|
||||
while value
|
||||
resultn2 = resultn1
|
||||
resultn1 = result
|
||||
if (resultn1 + resultn2).abs.digits.length < num_digits
|
||||
value = true
|
||||
else
|
||||
value = false
|
||||
end
|
||||
result = resultn1 + resultn2
|
||||
index += 1
|
||||
end
|
||||
res = index
|
||||
end
|
||||
|
||||
answer = solution()
|
||||
p answer
|
||||
|
Loading…
Reference in a new issue