Advertisement
Guest User

Untitled

a guest
Sep 18th, 2019
155
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 1.42 KB | None | 0 0
  1. temp_list = []
  2. end_list = []
  3. steps = 0.to_i
  4. meta_steps = 0.to_i
  5. meta_cc = 1.to_i
  6. puts "Enter Collatz conjecture paths to display from 1 to X."
  7. meta_cc_limit = gets.chomp.to_i
  8. while meta_cc < meta_cc_limit + 1
  9.   cc = meta_cc
  10.           end_list.push(cc)
  11.           temp_list.push(cc)
  12.   puts "Start with #{cc}."
  13.   while cc > 1
  14.   if cc.even? == TRUE
  15.           puts "#{cc} is even, so divide by 2. This brings it to #{cc/2}."
  16.           cc = cc/2
  17.           end_list.push(cc)
  18.           temp_list.push(cc)
  19.           steps = steps + 1
  20.           meta_steps = meta_steps + 1
  21.   else
  22.           puts "#{cc} is odd, so multiply by 3 then add 1. This bring its to #{cc*3+1}."
  23.           cc=cc*3+1
  24.           end_list.push(cc)
  25.           temp_list.push(cc)
  26.           steps = steps + 1
  27.           meta_steps = meta_steps + 1
  28.   end
  29.   end  
  30. puts "1 has been reached. It took #{steps} steps."
  31. puts "Hailstone numbers in path for #{meta_cc}:"
  32. puts temp_list.join(", ")
  33. temp_list.clear
  34.   if meta_cc == meta_cc_limit-1
  35.             puts "PATH FROM #{meta_cc} COMPLETE. ON TO FINAL NUMBER, WHICH IS #{meta_cc+1}."
  36.   elsif meta_cc < meta_cc_limit
  37.           puts "PATH FROM #{meta_cc} COMPLETE. ON TO NEXT NUMBER, WHICH IS #{meta_cc+1}."
  38.   end
  39. steps = steps - steps
  40. meta_cc = meta_cc + 1
  41. end
  42. puts "All paths completed. Total steps across all paths: #{meta_steps}"
  43. puts "Here's each unique number encountered:"
  44. puts end_list.uniq.join(", ")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement