Teilnahme an wettbewerbsfähiger Programmierung als Teil des Lernens von Ruby und Algorithmen. Hier geben wir aus, was wir im Laufe des Lernens gelernt haben.
Diesmal über die Standardausgabe. Ich habe bisher hauptsächlich aus irgendeinem Grund Druck verwendet. Ich dachte, es wäre besser, wenn ich eine Unterscheidung treffen könnte, also werde ich es zusammenfassen.
** p Methode ** -Ausgabe, die den Typ des Objekts widerspiegelt (der Zeichenfolgentyp wird von ** "" ** umgeben ausgegeben. Der Integer-Typ bleibt unverändert) ・ Zeilenumbrüche für jede Zeile
** setzt Methode ** -Konvertieren Sie ein Objekt in eine Zeichenfolge und geben Sie es aus ・ Zeilenumbrüche für jede Zeile
** Druckmethode ** -Konvertieren Sie ein Objekt in eine Zeichenfolge und geben Sie es aus · ** Nicht kaputtmachen **
Ausgaben, die den Typ des Objekts widerspiegeln. Da die Zeichenfolge in der von ** "" ** umgebenen Form ausgegeben wird, Wenn die Antwort eine Zeichenfolge ist, ist die Antwort falsch. Es gibt kein Problem, wenn Sie mit einer ganzen Zahl antworten.
p "test"
p 123
Ausgabe
"test"
123
Konvertiert das Objekt in eine Zeichenfolge und gibt es aus. Am Ende der Zeichenfolge tritt ein Zeilenumbruch auf.
puts "test"
puts 123
Ausgabe
test
123
Konvertiert das Objekt in eine Zeichenfolge und gibt es aus. Im Gegensatz zur Puts-Methode werden keine Zeilenumbrüche vorgenommen.
print "test"
print 123
Ausgabe
test123
Bei der aufeinanderfolgenden Ausgabe von zwei Objekten wie oben beschrieben werden die Zeichenfolgen in einem verbundenen Zustand ausgegeben.
Da sich das Ausgabeformat geringfügig unterscheidet, scheint es je nach Problem erforderlich zu sein, es ordnungsgemäß zu verwenden.
Aus "Atcoder Biginners Selection" Frage 2 "Produkt"
Es gibt zwei positive ganze Zahlen a und b. Ausgabe Gerade, wenn das Produkt von a und b gerade ist, und Ungerade, wenn es ungerade ist.
Eingabebeispiel
3 4
Antwortbeispiel
a, b = gets.split(" ").map(&:to_i)
p (a*b).odd? ? "Odd" : "Even" #p Methode
puts (a*b).odd? ? "Odd" : "Even" #setzt Methode
print (a*b).odd? ? "Odd" : "Even" #Druckmethode
Ausgabe
"Even" #p Methode falsche Antwort
Even #setzt Methode richtige Antwort
Even #Druckmethode richtige Antwort
** "" Die in ** enthaltene p-Methode war falsch. Die Antwort mit der Puts-Methode oder der Druckmethode ist die richtige Antwort.
Aus "Atcoder Biginners Selection" Frage 3 "Platzieren von Murmeln"
Es gibt ein Quadrat, das aus drei Quadraten besteht. "0" oder "1" wird auf jedes Quadrat geschrieben, und die Perlenkugel wird mit "1" auf das Quadrat gelegt. Bitte antworten Sie, wie viele Quadrate Perlenkugeln haben.
Eingabebeispiel
101
Antwortbeispiel
ary = gets.split("").map(&:to_i)
count = 0
ary.each{|i| i==1 ? count+=1 : count+=0}
p count #p Methode
puts count #setzt Methode
print count #Druckmethode
Ausgabe
2 #p Methode richtige Antwort
2 #setzt Methode richtige Antwort
2 #Druckmethode richtige Antwort
In dieser Frage war jedes Ausgabemuster korrekt.
Aus "Atcoder Biginners Selection" Frage 1 "Willkommen bei AtCoder"
Gegeben sind die ganzen Zahlen a, b, c und die Zeichenfolge s. Geben Sie das Berechnungsergebnis von a + b + c und die Zeichenfolge nebeneinander mit einem Abstand von halber Breite dazwischen aus.
Eingabebeispiel
1
2 3
test
Antwortbeispiel
a = gets.to_i
b, c = gets.split(" ").map(&:to_i)
s = gets.chomp
p "#{a+b+c} #{s}" #p Methode
puts "#{a+b+c} #{s}" #setzt Methode
print "#{a+b+c} #{s}" #Druckmethode
Ausgabe
"6 test" #p Methode falsche Antwort
6 test #setzt Methode richtige Antwort
6 test #Druckmethode richtige Antwort
Auch in diesem Problem war wie in Problembeispiel (1) nur die p-Methode falsch. ** Bei Problemen, bei denen eine Zeichenfolge und eine Antwort ausgegeben werden, ist es besser, mit der Puts-Methode oder der Druckmethode zu antworten. ** **.
Hier geht es darum, wie Sie die Standardausgabe verwenden, die Sie häufig verwenden.
Wenn Sie Fehler haben, wäre ich Ihnen dankbar, wenn Sie darauf hinweisen könnten.
Recommended Posts