我已經寫了一個程序來獲取一個數字,並打印英文文本的數字。這是我的第二次嘗試,同時試圖讓它更加濃縮並重復少一點。剛剛瞭解了遞歸,無法弄清楚如何使其工作
只要號碼爲< 100,代碼就可以正常工作,但我有問題。我嘗試刪除gets,並在方法本身上有一個參數,但是它將遞歸中的錯誤從行中移除,並將它的值添加到變量total中。
我認爲我處於一個我目前的技能不能抓住的地步。遞歸對我來說仍然感覺像是黑暗魔法。
def numberWords num
#num = gets.chomp.to_i
singles = ['one', 'two', 'three', 'four', 'five',
'six', 'seven', 'eight', 'nine']
tens = ['eleventy', 'twenty', 'thirty', 'forty', 'fifty',
'sixty', 'seventy', 'eighty', 'ninety']
teens = ['eleven', 'twelve', 'thirteen', 'fourteen', 'fifteen',
'sixteen', 'seventeen', 'eighteen', 'nineteen']
total = ""
if num == 0
puts "Zero"
end
current = num/1000
if current > 0
thousands = numberWords current
total = total + thousands + "Thousands"
end
total = total + " "
current = num/100
if current > 0
hundreds = numberWords current
total = total + hundreds + "Hundred"
end
total = total + " "
#TENS
current = num/10
if current > 1
total = total + tens[current - 1]
end
total = total + " "
#SINGLES
num = num - (current*10)
if num > 0
total = total + singles[num - 1]
end
puts total
end
numberWords(2222)
我不知道 「eleventy」。 – mvw
大聲笑,當我解決了遞歸問題時,我將添加在青少年中。 –