Es werden drei Ganzzahlen angegeben, die durch Leerzeichen getrennt sind. Geben Sie den Wert aus, der durch Multiplizieren von drei Ganzzahlen erhalten wird.
Zum Beispiel
4 10 5
In diesem Fall 4 x 10 x 5
200
Bitte ausgeben.
ruby.rb
numbers = gets.split(' ').map(&:to_i)
a = 1
numbers.each do |number|
a = a * number
end
puts a
numbers = gets.split(' ').map(&:to_i)
・ Rufen Sie das Eingabeelement mit der Methode get auf
to_i
in Ganzzahlena = 1
numbers.each do |number|
a = a * number
end
・ Ersetzen Sie 1 durch a mit a = 1
(Anfangswert)
・ Setzen Sie die Zahlenelemente in die Zahlenvariable ein und wiederholen Sie den folgenden Vorgang
numbers = gets.split(' ').map(&:to_i).inject(:*)
puts numbers
Injizieren ist eine Methode, die wie jede und Map iteriert.
Das Merkmal ist, dass iterative Berechnungen unter Verwendung von Blöcken durchgeführt werden.
Array-Objekt.inject {|Ursprünglicher Wert,Element|Blockverarbeitung}
Es wird beschrieben als.
Die Elemente des Blocks werden vom Array in der Reihenfolge der Wiederholung hinzugefügt, und die Berechnung wird durch Verarbeiten des Blocks durchgeführt.
Sie können die Injektion stilvoller schreiben, indem Sie den Operator als Symbol an die Injektion übergeben.
Zum Beispiel
Ich möchte den Gesamtinhalt des Arrays berechnen
Ich möchte den Wert berechnen, indem ich alle multipliziere
Ich möchte nacheinander mit dem Inhalt des Arrays subtrahieren
Es kann in verschiedenen Situationen wie * verwendet werden.
array = 1..6
p array.inject(:+) #Fügen Sie alle Elemente des Arrays hinzu
p array.inject(3,:+) #Fügen Sie alle Elemente des Arrays zum Anfangswert 3 hinzu
p array.inject(:*) #Multiplizieren Sie alle Elemente des Arrays
p array.inject(3,:*) #Multiplizieren Sie alle Elemente des Arrays mit dem Anfangswert 3
p array.inject(100,:-) #Subtrahieren Sie den Gesamtwert des Arrays von 100
[Ausführungsergebnis]
21
24
720
2160
79
Die im Kommentar erwähnte Methode mit der Injektionsmethode ist intelligenter und einfacher zu berechnen! Danke für deinen Kommentar.
Recommended Posts