Ich habe ein Programm geschrieben, um eine Zahl aufzunehmen, und die Zahl in Englisch Text zu drucken. Dies ist mein zweiter Versuch, während ich versuche, es kondensierter zu machen und weniger zu wiederholen.Gerade über Rekursion gelernt, kann nicht herausfinden, wie es funktioniert
Der Code funktioniert gut, solange die Nummer < 100 aber darüber ist, und ich habe Probleme. Ich habe versucht, die gets zu entfernen, und einen Parameter auf der Methode selbst, aber das verschoben den Fehler von der Zeile mit der Rekursion, um den Wert der Summe der Variablen hinzuzufügen.
Ich glaube, ich bin an einem Punkt, den meine aktuellen Fähigkeiten nicht erfassen. Rekursion fühlt sich immer noch wie dunkle Magie an.
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)
Ich weiß nicht "eleventy". – mvw
lol, ich werde in den Teenager hinzufügen, wenn ich das Rekursionsproblem einmal gelöst habe. –