Really stumped here.

def sum_digits(n)

sum = 0

while n>0

sum += n % 10

n /= 10

end

sum

end

STDOUT.sync=true

puts sum_digits(12) #=> 3

require ‘mathn’

puts sum_digits(12) # hangs

What am I doing wrong?

Really stumped here.

def sum_digits(n)

sum = 0

while n>0

sum += n % 10

n /= 10

end

sum

end

STDOUT.sync=true

puts sum_digits(12) #=> 3

require ‘mathn’

puts sum_digits(12) # hangs

What am I doing wrong?

On Tue, Mar 31, 2009 at 3:46 PM, Siep K. [email protected]

wrote:

STDOUT.sync=true

puts sum_digits(12) #=> 3

require ‘mathn’

puts sum_digits(12) # hangsWhat am I doing wrong?

This should illustrate the problem:

irb(main):001:0> require ‘mathn’

=> true

irb(main):002:0> n = 10

=> 10

irb(main):003:0> n /= 10

=> 1

irb(main):004:0> n /= 10

=> 1/10

irb(main):005:0> n /= 10

=> 1/100

The solution:

def sum_digits(n)

sum = 0

while n>0

sum += n % 10

n = n.div 10

end

sum

end

On Wed, Apr 1, 2009 at 4:16 AM, Siep K. [email protected]

wrote:

STDOUT.sync=true

puts sum_digits(12) #=> 3

require ‘mathn’

puts sum_digits(12) # hangs

n /= 10 just keeps making n into a smaller and smaller rational. it

never reaches 0

martin

Martin DeMello wrote:

On Wed, Apr 1, 2009 at 4:16 AM, Siep K. [email protected]

wrote:STDOUT.sync=true

puts sum_digits(12) #=> 3

require ‘mathn’

puts sum_digits(12) # hangsn /= 10 just keeps making n into a smaller and smaller rational. it

never reaches 0martin

Yes, that’s clear. Thanks for the help (real fast), Christopher and

Martin.

Siep

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

Sponsor our Newsletter | Privacy Policy | Terms of Service | Remote Ruby Jobs