I come from a JavaScript background and wrote this similar to how I would in javascript. I am writing it in Ruby. This is a codewars exercise. n being 0 and 1 returns 0.00 and 1.00 as expected. Every other positive natural number returns 0.
# Task: # Your task is to write a function which returns the sum of following series upto nth term(parameter). # Series: 1 + 1/4 + 1/7 + 1/10 + 1/13 + 1/16 +... # Rules: # You need to round the answer to 2 decimal places and return it as String. # If the given value is 0 then it should return 0.00 # You will only be given Natural Numbers as arguments. # Examples: # SeriesSum(1) => 1 = "1.00" # SeriesSum(2) => 1 + 1/4 = "1.25" # SeriesSum(5) => 1 + 1/4 + 1/7 + 1/10 + 1/13 = "1.57" def series_sum(n) sum = 0 if n == 0 return 0.00 elsif n == 1 return 1.00 else n.times do |i| if i == 1 sum += 1 break end sum += 1/( 1 + (3 * (i - 1)) ) end end return sum end puts series_sum(0) puts series_sum(1) puts series_sum(2) puts series_sum(4) puts series_sum(5)