AtCoder Beginner Contest 165 a eu lieu. Je suis un peu coincé dans ce problème D, alors je voudrais revoir ~~ vengeance ~~.
AtCoder Beginner Contest 165 D - Floor Function Difficulty: 505
Ce thème, fonction de sol Ruby Vérifiez l'exemple d'entrée 1 avec M. Excel. Vous pouvez voir que le cycle est exactement ** 7 **. Si vous y réfléchissez bien, ce sera parce qu'il est divisé par ** 7 **, donc si n est b -1 ou plus, la valeur maximale que la fonction f peut prendre, si elle est inférieure à, n est une fonction (car c'est une simple augmentation) La valeur attribuée à f est la réponse.
ruby.rb
a, b, n = gets.split.map(&:to_f)
if n >= b - 1
puts (a - a / b).floor
else
puts ((a * n / b).floor - a * (n / b).floor).floor
end
f.rb
a, b, n = gets.split.map(&:to_f)
J'ai codé gets.split.map (&: to_i)
comme d'habitude, donc j'étais impatient car le calcul ne correspondait pas.
python.py
a, b, n = map(int, input().split())
if n >= b - 1:
print(int(a - a / b))
else:
print(int(a * n / b) - a * int(n / b))
perl.pl
chomp (my ($a, $b, $n) = split / /, <STDIN>);
if ($n >= $b - 1) {
print int($a - $a / $b), "\n";
} else {
print (int($a * $n / $b) - $a * int($n / $b)), "\n";
}
java.java
import java.util.*;
class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = Integer.parseInt(sc.next());
Double b = Double.parseDouble(sc.next());
Double n = Double.parseDouble(sc.next());
sc.close();
if (n >= b - 1) {
System.out.println((int) (a - a / b));
} else {
System.out.println((int) (a * n / b) - a * (int) (n / b));
}
}
}
Ruby | Python | Perl | Java | |
---|---|---|---|---|
Longueur du code | 138 Byte | 129 Byte | 169 Byte | 517 Byte |
Temps d'exécution | 53 ms | 23 ms | 2 ms | 102 ms |
Mémoire | 14204 KB | 9016 KB | 4788 KB | 35648 KB |
Recommended Posts