Class: CyclicalCubeSum::CyclicalCubeSummer
- Inherits:
-
Object
- Object
- CyclicalCubeSum::CyclicalCubeSummer
- 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
- #cube_array(array) ⇒ Object
- #full_cycle(integer) ⇒ Object
- #get_digit_array(integer) ⇒ Object
- #single_cycle(integer) ⇒ Object
- #sum_array(x) ⇒ Object
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 |