Ich habe einen Stolperstein aufgrund eines Rubinproblems, daher werde ich ihn als Aufzeichnung aufbewahren.
Das Folgende ist eine grobe Erklärung des Problems. ・ Zwei Zahlen werden als Zeichenfolge eingegeben ("a b") ・ Ich möchte eine Zahl angeben, die jedes Finale verdoppelt
Falsche Antwort
num = gets.split.map(&:to_i)
puts num * 2
Teilen Sie den Wert mit der Methode split
und fügen Sie den Zeichenfolgenwert in das Array ein.
Verwenden Sie `map (&: to_i)`
, um die Werte des Arrays in Zahlen umzuwandeln und ein Array zu erstellen. (In Bezug auf `map (&: to_i)`
ist der folgende Artikel sehr leicht zu verstehen und ich habe ihn als Referenz verwendet.)
https://a-records.info/ruby-map-ampersand-colon-to_i/
Führen Sie * 2 für die Elemente des Arrays aus.
Das Ergebnis ist wie folgt.
num = gets.split.map(&:to_i) //Geben Sie 5 10 ein
puts num * 2
Ausgabeergebnis=> 5 10 5 10
Ich habe nicht verstanden, warum 5 10 zweimal wiederholt wurde, obwohl ich es in eine Zahl mit @ map (&: to_i)
konvertiert habe.
num = gets.split.map(&:to_i)
num.each {|n| puts n * 2}
Es wurde gelöst, indem jedes Element mit "jedem" verarbeitet wurde.
Recommended Posts