Ich habe ein einfaches Programm zur Berechnung der Punktzahl geschrieben, also ein Memorandum für mich
Zunächst der folgende Code
qiita.rb
k,n = gets.chomp.split(" ").map{|i| i.to_i}
a = []
d = []
k.times do
d_1,a_1 = gets.chomp.split(' ').map{|i| i.to_i}
d.push(d_1)
a.push(a_1)
end
num = 0
check = []
while k > 0
if d[num].between?(1,9)
check.push(((a[num].fdiv(n) * 100) * 0.8).floor)
elsif d[num] >= 10
check.push(0)
else
check.push((a[num].fdiv(n) * 100).floor)
end
if check[num] >= 80
puts "A"
elsif check[num] >= 70
puts "B"
elsif check[num] >= 60
puts "C"
else
puts "D"
end
num = num + 1
k = k - 1
end
Die erste if-Anweisung prüft, ob Punkte von der Einreichungsfrist abgezogen werden können. Es gibt keinen Ursprung, wenn es keine Frist gibt, die die Einreichungsfrist voraussetzt (d_1) 20% Abzug bei Verspätung um 1-9 Tage Ich gebe 0 Punkte für 10 Tage oder länger.
Die zweite if-Anweisung gibt die Bewertung des Endergebnisses in vier Schritten zurück.
Die diesmal verwendete neue Methode ist fdiv. Mit einem Wort, es ist fast dasselbe wie to_f.
x / y.to_f Sein x.fdiv(y) Ich repariere es nur
Recommended Posts