Der Modulo-Operator ist wie der Mod-Operator, wenn die Zahl positiv ist, aber unterschiedlich, wenn die Zahl negativ ist.
Viele Male in den Problemen werden wir gebeten, die Antwort modulo 10^9 + 7 zu geben.
Lassen Sie die Antwort (vor der Verwendung von Modulo) mit "a" gekennzeichnet werden.
einfacher direkt Rule-
wenn ein positives ist, dann ist ein modulo 10^9 + 7 = a% (10^9 + 7)
wenn ein negativ ist, dann ein Modulo-10^9 + 7 = (a% (10^9 + 7)) + (10^9 + 7)
Wenn in suc h Probleme, wir finden, dass jeder Schritt der Schleife einen Wert berechnen kann, der außerhalb des ganzzahligen Bereichs liegt (wenn wir Ganzzahlen verwenden), dann können wir den Modulo-Operator in diesem Schritt selbst verwenden. Die endgültige Antwort lautet so, als hätten wir den Modulo-Operator nur einmal benutzt.
Dies ist, weil- (a * b)% c = ((a% c) (b% c))% c Das gleiche gilt für Addition und Subtraktion.
Mögliches Duplikat von http://stackoverflow.com/questions/4003232/how-to-code-a-modulo-operator-in-cc-obj-c-that-handles-negative-numbers – james
mögliche Duplikate von [ Modulo-Operator mit negativen Werten] (http://stackoverflow.com/questions/7594508/modulo-operator-with-negative-values) – sugavaneshb