letters - Project Euler #17 Ruby - What's wrong? -



letters - Project Euler #17 Ruby - What's wrong? -

i made programme in ruby , have no thought why it's not giving me right answer

problem: if numbers 1 5 written out in words: one, two, three, four, five, there 3 + 3 + 5 + 4 + 4 = 19 letters used in total.

if numbers 1 1000 (one thousand) inclusive written out in words, how many letters used?

note: not count spaces or hyphens. example, 342 (three hundred , forty-two) contains 23 letters , 115 (one hundred , fifteen) contains 20 letters. utilize of "and" when writing out numbers in compliance british usage.

my code:

def number_to_words(n) custom = {"0" => "", "1" => "one", "2" => "two", "3" => "three", "4" => "four", "5" => "five", "6" => "six", "7" => "seven", "8" => "eight", "9" => "nine", "10" => "ten", "11" => "eleven", "12" => "twelve", "13" => "thirteen", "14" => "fourteen", "15" => "fifteen", "16" => "sixteen", "17"=> "seventeen", "18" => "eighteen", "19" => "nineteen",} tens = {"0" => "", "1" => "ten", "2" => "twenty", "3" => "thirty", "4" => "forty", "5" => "fifty", "6" => "sixty", "7" => "seventy", "8" => "eighty", "9" => "ninety"} if n < 20 string = custom[n.to_s] elsif n >= 20 && n < 100 string = tens[n.to_s[0]] + custom[n.to_s[1]] elsif n % 1000 == 0 string = "onethousand" elsif n >= 100 && n % 100 == 0 string = custom[n.to_s[0]] + "hundred" else string = custom[n.to_s[0]] + "hundred" + "and" + tens[n.to_s[1]] + custom[n.to_s[2]] end end def letter_counter(x) n = 1 sum = 0 while n < x + 1 sum = sum + number_to_words(n).length print number_to_words(n).length, "\n" n = n + 1 print n, "\n" end results = sum end

correct reply

21124

i don't know ruby, know euler question. after studying code have, have guess else statement incorrect.

say have number 111, think falls else statement. wind building string says, "onehundredandtenone" instead of "onehundredandeleven"

so me range 111 - 119 have wrong strings built throw off counts. actually, true 211 - 219... 311 - 319... etc...

ruby letters

Comments

Popular posts from this blog

java - How to set log4j.defaultInitOverride property to false in jboss server 6 -

c - GStreamer 1.0 1.4.5 RTSP Example Server sends 503 Service unavailable -

Using ajax with sonata admin list view pagination -