Les deux réponses sont correctes, depuis -1 modulo 10
est le même que 9 modulo 10
.
r = (a mod m)
a = n*q + r
Vous pouvez être sûr qu' |r| < |n|
,, mais pas ce que la valeur de r
est. Il y a 2 réponses, négatives et positives.
En C89, bien que la réponse sera toujours la bonne, la valeur exacte d'un modulo (ils se réfèrent à lui comme le reste) n'est pas défini, le sens qu'il peut être soit un résultat négatif ou un résultat positif. En C99 le résultat est défini.
Si vous souhaitez que la réponse est positive, vous pouvez simplement ajouter 10 si vous trouvez que votre réponse est négative.
Pour obtenir le modulo à l'opérateur de travailler de la même manière sur toutes les langues, rappelez-vous que:
n mod M == (n + M) mod M
et en général:
n mod M == (n + X * M) mod M