Project Euler #2

By considering the terms in the Fibonacci sequence whose values do not exceed four million, find the sum of the even-valued terms

Fibonacci sequence
피보나치 수는 0과 1로 시작하며, 다음 피보나치 수는 바로 앞의 두 피보나치 수의 합이 된다. n = 0, 1,...에 해당하는 피보나치 수는 (OEIS의 수열 A000045)
011235813213455891442333776109871597, 2584, 4181, 6765, 10946...
이다.
출처 : 위키피디아




# Project Euler problem #2
# By considering the terms in the Fibonacci sequence
# whose values do not exceed four million,
# find the sum of the even-valued terms
#
# Author Saerohoon Yang(yang.sae@gmail.com)

class FibonacciSequence

  def sumFibonacciSeq

    # 피보나치 수열은 0, 1로 시작
    i = 0
    j = 1
 
    # 계산된 피보나치 수열은 이 변수에 담음
    fibonacci = 0
 
    # 피보나치 수의 총합이 담길 변수
    sum_o_fibonaccis = 0

    # Four million을 넘지 않으니까 4000000까지 루핑
    while i+j<=4000000
      fibonacci = i+j

      # 계산된 피보나치의 수가 짝수인지 확인하고
      if fibonacci%2==0

        # 짝수면 더함
        sum_o_fibonaccis += fibonacci;
      end
    
      # 수열은 앞으로 진행되고
      i = j
      j = fibonacci

    end
   
    # 그냥 확인을 위해서 총합 인쇄
    puts "Sum of even Fibonacci numbers is #{sum_o_fibonaccis}"
   
  end
 
end

FibonacciSequence.new.sumFibonacciSeq


댓글 없음:

댓글 쓰기