Le [problème ABC131 C] d'AtCoder (https://atcoder.jp/contests/abc131/tasks/abc131_c) a été résolu et j'ai essayé d'obtenir un quotient en le convertissant en type int. J'ai écrit cet article car le résultat du calcul était différent du cas d'utilisation de l'enfant.
En essayant de calculer le quotient de 103/10 Arrondi par fonte
print(int(103/10)) #Le résultat est 10
Calcul du quotient par opérateur de division entière
print(103//10) #Le résultat est 10
Dans les cas ci-dessus, le résultat est le même, mais lorsque le nombre de chiffres est de 17 ou plus.
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) + ": " + "Le quotient" +
str(s) + ", Le casting" + str(s_c))
for out in l:
print(out)
Le résultat est
100000000000000000, 100000000000000001:Le quotient est 0, la distribution est 1
100000000000000000, 100000000000000002:Le quotient est 0, la distribution est 1
100000000000000000, 100000000000000003:Le quotient est 0, la distribution est 1
100000000000000000, 100000000000000004:Le quotient est 0, la distribution est 1
100000000000000000, 100000000000000005:Le quotient est 0, la distribution est 1
100000000000000001, 100000000000000002:Le quotient est 0, la distribution est 1
100000000000000001, 100000000000000003:Le quotient est 0, la distribution est 1
100000000000000001, 100000000000000004:Le quotient est 0, la distribution est 1
100000000000000001, 100000000000000005:Le quotient est 0, la distribution est 1
100000000000000001, 100000000000000006:Le quotient est 0, la distribution est 1
100000000000000002, 100000000000000003:Le quotient est 0, la distribution est 1
100000000000000002, 100000000000000004:Le quotient est 0, la distribution est 1
100000000000000002, 100000000000000005:Le quotient est 0, la distribution est 1
100000000000000002, 100000000000000006:Le quotient est 0, la distribution est 1
100000000000000002, 100000000000000007:Le quotient est 0, la distribution est 1
100000000000000003, 100000000000000004:Le quotient est 0, la distribution est 1
100000000000000003, 100000000000000005:Le quotient est 0, la distribution est 1
100000000000000003, 100000000000000006:Le quotient est 0, la distribution est 1
100000000000000003, 100000000000000007:Le quotient est 0, la distribution est 1
100000000000000003, 100000000000000008:Le quotient est 0, la distribution est 1
100000000000000004, 100000000000000005:Le quotient est 0, la distribution est 1
100000000000000004, 100000000000000006:Le quotient est 0, la distribution est 1
100000000000000004, 100000000000000007:Le quotient est 0, la distribution est 1
100000000000000004, 100000000000000008:Le quotient est 0, la distribution est 1
100000000000000004, 100000000000000009:Le quotient est 0, la distribution est 1
100000000000000005, 100000000000000006:Le quotient est 0, la distribution est 1
100000000000000005, 100000000000000007:Le quotient est 0, la distribution est 1
100000000000000005, 100000000000000008:Le quotient est 0, la distribution est 1
100000000000000005, 100000000000000009:Le quotient est 0, la distribution est 1
100000000000000006, 100000000000000007:Le quotient est 0, la distribution est 1
100000000000000006, 100000000000000008:Le quotient est 0, la distribution est 1
100000000000000006, 100000000000000009:Le quotient est 0, la distribution est 1
100000000000000007, 100000000000000008:Le quotient est 0, la distribution est 1
100000000000000007, 100000000000000009:Le quotient est 0, la distribution est 1
100000000000000008, 100000000000000009:Le quotient est 0, la distribution est 1
Et le résultat était différent.
Je n'ai pas la chance de résoudre les problèmes plus que le problème D avec AtCoder (en termes de difficulté), donc je ne gère pas tellement les nombres de plus de 10 ^ 17, mais à partir de maintenant, quand ce n'est pas nécessaire, je l'arrondirai en jetant. Je vais l'éviter.