Das [ABC131 C-Problem] von AtCoder (https://atcoder.jp/contests/abc131/tasks/abc131_c) wurde gelöst, und ich habe versucht, einen Quotienten zu erhalten, indem ich ihn in den Typ int umgewandelt habe. Ich habe diesen Artikel geschrieben, weil sich das Berechnungsergebnis von dem Fall der Verwendung des Kindes unterschied.
Beim Versuch, den Quotienten von 103/10 zu berechnen Rundung durch Besetzung
print(int(103/10)) #Das Ergebnis ist 10
Berechnung des Quotienten durch Ganzzahldivisionsoperator
print(103//10) #Das Ergebnis ist 10
In den oben genannten Fällen ist das Ergebnis das gleiche, jedoch wenn die Anzahl der Ziffern 17 oder mehr beträgt.
l = []
for i in range(10 ** 17, 10 ** 17 + 10):
for j in range(10 ** 17, 10 ** 17 + 10):
s = i // j
s_c = int(i / j)
if s != s_c:
l.append(str(i) + ", " + str(j) + ": " + "Der Quotient" +
str(s) + ", Die Besetzung" + str(s_c))
for out in l:
print(out)
Ergebnis ist
100000000000000000, 100000000000000001:Der Quotient ist 0, die Besetzung ist 1
100000000000000000, 100000000000000002:Der Quotient ist 0, die Besetzung ist 1
100000000000000000, 100000000000000003:Der Quotient ist 0, die Besetzung ist 1
100000000000000000, 100000000000000004:Der Quotient ist 0, die Besetzung ist 1
100000000000000000, 100000000000000005:Der Quotient ist 0, die Besetzung ist 1
100000000000000001, 100000000000000002:Der Quotient ist 0, die Besetzung ist 1
100000000000000001, 100000000000000003:Der Quotient ist 0, die Besetzung ist 1
100000000000000001, 100000000000000004:Der Quotient ist 0, die Besetzung ist 1
100000000000000001, 100000000000000005:Der Quotient ist 0, die Besetzung ist 1
100000000000000001, 100000000000000006:Der Quotient ist 0, die Besetzung ist 1
100000000000000002, 100000000000000003:Der Quotient ist 0, die Besetzung ist 1
100000000000000002, 100000000000000004:Der Quotient ist 0, die Besetzung ist 1
100000000000000002, 100000000000000005:Der Quotient ist 0, die Besetzung ist 1
100000000000000002, 100000000000000006:Der Quotient ist 0, die Besetzung ist 1
100000000000000002, 100000000000000007:Der Quotient ist 0, die Besetzung ist 1
100000000000000003, 100000000000000004:Der Quotient ist 0, die Besetzung ist 1
100000000000000003, 100000000000000005:Der Quotient ist 0, die Besetzung ist 1
100000000000000003, 100000000000000006:Der Quotient ist 0, die Besetzung ist 1
100000000000000003, 100000000000000007:Der Quotient ist 0, die Besetzung ist 1
100000000000000003, 100000000000000008:Der Quotient ist 0, die Besetzung ist 1
100000000000000004, 100000000000000005:Der Quotient ist 0, die Besetzung ist 1
100000000000000004, 100000000000000006:Der Quotient ist 0, die Besetzung ist 1
100000000000000004, 100000000000000007:Der Quotient ist 0, die Besetzung ist 1
100000000000000004, 100000000000000008:Der Quotient ist 0, die Besetzung ist 1
100000000000000004, 100000000000000009:Der Quotient ist 0, die Besetzung ist 1
100000000000000005, 100000000000000006:Der Quotient ist 0, die Besetzung ist 1
100000000000000005, 100000000000000007:Der Quotient ist 0, die Besetzung ist 1
100000000000000005, 100000000000000008:Der Quotient ist 0, die Besetzung ist 1
100000000000000005, 100000000000000009:Der Quotient ist 0, die Besetzung ist 1
100000000000000006, 100000000000000007:Der Quotient ist 0, die Besetzung ist 1
100000000000000006, 100000000000000008:Der Quotient ist 0, die Besetzung ist 1
100000000000000006, 100000000000000009:Der Quotient ist 0, die Besetzung ist 1
100000000000000007, 100000000000000008:Der Quotient ist 0, die Besetzung ist 1
100000000000000007, 100000000000000009:Der Quotient ist 0, die Besetzung ist 1
100000000000000008, 100000000000000009:Der Quotient ist 0, die Besetzung ist 1
Und das Ergebnis war anders.
Ich habe keine Chance, Probleme mehr als D-Probleme mit AtCoder zu lösen (in Bezug auf den Schwierigkeitsgrad), daher gehe ich nicht mehr so oft mit Zahlen über 10 ^ 17 um, aber von nun an, wenn ich sie nicht brauche, runde ich sie durch Casting ab. Ich werde es vermeiden.