RosettaCodeData/Task/Digital-root/Crystal/digital-root-3.cr

19 lines
363 B
Crystal

def digital_root_with_persistence_to_s(n : Int) : {Int32, Int32}
n = n.abs
persistence = 0
until n <= 9
persistence += 1
digit_sum = n.to_s.chars.sum &.to_i
n = digit_sum
end
{n, persistence}
end
puts digital_root_with_persistence_to_s 627615
puts digital_root_with_persistence_to_s 39390
puts digital_root_with_persistence_to_s 588225