tasks a-s
This commit is contained in:
parent
47bf37c096
commit
b83f433714
12433 changed files with 156208 additions and 123 deletions
|
|
@ -0,0 +1,37 @@
|
|||
$cache = {}
|
||||
def selfReferentialSequence_cached(n, seen = [])
|
||||
return $cache[n] if $cache.include? n
|
||||
return [] if seen.include? n
|
||||
|
||||
digit_count = Array.new(10, 0)
|
||||
n.to_s.chars.collect {|char| digit_count[char.to_i] += 1}
|
||||
term = ''
|
||||
9.downto(0).each do |d|
|
||||
if digit_count[d] > 0
|
||||
term += digit_count[d].to_s + d.to_s
|
||||
end
|
||||
end
|
||||
term = term.to_i
|
||||
$cache[n] = [n] + selfReferentialSequence_cached(term, [n] + seen)
|
||||
end
|
||||
|
||||
limit = 1_000_000
|
||||
max_len = 0
|
||||
max_vals = []
|
||||
|
||||
1.upto(limit - 1) do |n|
|
||||
seq = selfReferentialSequence_cached(n)
|
||||
if seq.length > max_len
|
||||
max_len = seq.length
|
||||
max_vals = [n]
|
||||
elsif seq.length == max_len
|
||||
max_vals << n
|
||||
end
|
||||
end
|
||||
|
||||
puts "values: #{max_vals.inspect}"
|
||||
puts "iterations: #{max_len}"
|
||||
puts "sequence:"
|
||||
selfReferentialSequence_cached(max_vals[0]).each_with_index do |val, idx|
|
||||
puts "%2d %d" % [idx + 1, val]
|
||||
end
|
||||
Loading…
Add table
Add a link
Reference in a new issue