Participer à une programmation compétitive dans le cadre de l'apprentissage de Ruby et des algorithmes. Ici, nous sortirons ce que nous avons appris au cours de l'apprentissage.
Cette fois sur la sortie standard. J'ai utilisé l'impression principalement pour une raison quelconque jusqu'à présent, J'ai pensé que ce serait mieux si je pouvais faire une distinction, alors je vais la résumer.
** méthode p ** -Sortie qui reflète le type de l'objet (le type de chaîne de caractères est affiché entouré de ** "" **. Le type entier reste tel quel) ・ Sauts de ligne pour chaque ligne
** met méthode ** -Convertir un objet en chaîne de caractères et sortie ・ Sauts de ligne pour chaque ligne
** méthode d'impression ** -Convertir un objet en chaîne de caractères et sortie · ** Ne pas casser **
Sorties qui reflètent le type de l'objet. Étant donné que la chaîne de caractères est affichée sous la forme entourée de ** "" **, Si la réponse est une chaîne de caractères, la réponse sera incorrecte. Il n'y a pas de problème si vous répondez par un entier.
p "test"
p 123
production
"test"
123
Convertit l'objet en chaîne de caractères et le produit. Un saut de ligne se produit à la fin de la chaîne.
puts "test"
puts 123
production
test
123
Convertit l'objet en chaîne de caractères et le produit. Contrairement à la méthode put, aucun saut de ligne n'est effectué.
print "test"
print 123
production
test123
Lors de la sortie de deux objets successivement comme décrit ci-dessus, les chaînes de caractères sont sorties dans un état connecté.
Le format de sortie étant légèrement différent, il semble nécessaire de l'utiliser correctement en fonction du problème.
De "Atcoder Biginners Selection" Question 2 "Produit"
Il existe deux entiers positifs a et b. Sortie Même si le produit de a et b est pair, et Impair s'il est impair.
Exemple d'entrée
3 4
Exemple de réponse
a, b = gets.split(" ").map(&:to_i)
p (a*b).odd? ? "Odd" : "Even" #méthode p
puts (a*b).odd? ? "Odd" : "Even" #met méthode
print (a*b).odd? ? "Odd" : "Even" #méthode d'impression
production
"Even" #méthode p réponse incorrecte
Even #met méthode bonne réponse
Even #méthode d'impression bonne réponse
** "" La méthode p incluse dans ** était incorrecte. La réponse avec la méthode put ou la méthode d'impression est la bonne réponse.
De "Atcoder Biginners Selection" Question 3 "Placement des billes"
Il y a un carré composé de trois carrés. "0" ou "1" est écrit sur chaque carré, et la boule de perles est placée sur le carré avec "1" écrit dessus. Veuillez indiquer combien de carrés ont des billes de perles
Exemple d'entrée
101
Exemple de réponse
ary = gets.split("").map(&:to_i)
count = 0
ary.each{|i| i==1 ? count+=1 : count+=0}
p count #méthode p
puts count #met méthode
print count #méthode d'impression
production
2 #méthode p bonne réponse
2 #met méthode bonne réponse
2 #méthode d'impression bonne réponse
Dans cette question, tout modèle de sortie était correct.
De "Sélection Atcoder Biginners" Question 1 "Bienvenue sur AtCoder"
Étant donné les entiers a, b, c et la chaîne s. Sortez le résultat du calcul de a + b + c et la chaîne de caractères s côte à côte avec un espace demi-largeur entre les deux.
Exemple d'entrée
1
2 3
test
Exemple de réponse
a = gets.to_i
b, c = gets.split(" ").map(&:to_i)
s = gets.chomp
p "#{a+b+c} #{s}" #méthode p
puts "#{a+b+c} #{s}" #met méthode
print "#{a+b+c} #{s}" #méthode d'impression
production
"6 test" #méthode p réponse incorrecte
6 test #met méthode bonne réponse
6 test #méthode d'impression bonne réponse
Dans ce problème également, comme dans l'exemple de problème (1), seule la méthode p était incorrecte. ** Pour les problèmes qui produisent une chaîne de caractères et une réponse, il semble préférable de répondre avec la méthode put ou la méthode d'impression. ** **
C'est tout sur la façon d'utiliser la sortie standard que vous utilisez souvent.
Si vous avez des erreurs, je vous serais reconnaissant de bien vouloir les signaler.
Recommended Posts