Class: CyclicalCubeSum::CyclicalCubeSummer

Inherits:
Object
  • Object
show all
Defined in:
lib/cyclical_cube_sum/cyclical_cube_summer.rb

Constant Summary collapse

TRIANGULAR_NUMBERS =
[153, 371, 370]
FOUND_TRIANGLES =
[407]
ALL_TRIANGLES =
TRIANGULAR_NUMBERS.push(FOUND_TRIANGLES).flatten

Instance Method Summary collapse

Instance Method Details

#cube_array(array) ⇒ Object



12
13
14
# File 'lib/cyclical_cube_sum/cyclical_cube_summer.rb', line 12

def cube_array(array)
  array.map! { |x| x**3 }
end

#full_cycle(integer) ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/cyclical_cube_sum/cyclical_cube_summer.rb', line 27

def full_cycle(integer)
  return :triangle if ALL_TRIANGLES.include?(integer)
  result = single_cycle(integer)
  return :loop if result == integer
  count = 0
  result_list = []
  until(count == 99 || ALL_TRIANGLES.include?(result)) # || result_list.include?(result))s
    result = single_cycle(result)
    return :loop if result_list.include? result #puts "Result list: #{result_list}"
    result_list << result
  end
  result
end

#get_digit_array(integer) ⇒ Object



8
9
10
# File 'lib/cyclical_cube_sum/cyclical_cube_summer.rb', line 8

def get_digit_array(integer)
  integer.to_s.chars.map(&:to_i)
end

#single_cycle(integer) ⇒ Object



20
21
22
23
24
25
# File 'lib/cyclical_cube_sum/cyclical_cube_summer.rb', line 20

def single_cycle(integer)
  char_array = get_digit_array(integer)
  cubed_array = cube_array(char_array)
  result = sum_array(cubed_array)
  result
end

#sum_array(x) ⇒ Object



16
17
18
# File 'lib/cyclical_cube_sum/cyclical_cube_summer.rb', line 16

def sum_array(x)
  x.inject(0){|sum,x| sum + x }
end