Lösen Sie das Problem der Modulo-negativen Zahlen geschickt
Viele Programmiersprachen bieten den Modulo-Operator (%), der zur Berechnung des Rests nach der Division einer Zahl durch eine andere verwendet wird. Wenn dieser Operator jedoch auf negative Zahlen angewendet wird, können unerwartete Ergebnisse auftreten.
Wenn Sie beispielsweise -1 % 3 in einer Sprache wie C oder Java ausführen, ist das Ergebnis -1 statt der erwarteten 2. Dies liegt daran, dass der Modulo-Operator normalerweise den Rest einer Divisionsoperation zurückgibt, der bei einer negativen Dividende negativ sein kann.
Um dieses Problem zu lösen und das gewünschte Verhalten zu erhalten, kann eine benutzerdefinierte Mod-Funktion implementiert werden:
<code class="language-c++">int mod(int x, int m) { return (x % m + m) % m; }</code>
Mit dieser Funktion sind die folgenden Berechnungsergebnisse wie erwartet:
输入 | 预期输出 | 函数输出 |
---|---|---|
-1 % 3 | 2 | mod(-1, 3) = 2 |
-2 % 3 | 1 | mod(-2, 3) = 1 |
-3 % 3 | 0 | mod(-3, 3) = 0 |
Diese Funktion funktioniert so, dass sie sicherstellt, dass das Ergebnis immer positiv ist, indem sie den Modul zu jedem negativen Wert addiert, der durch die anfängliche Modulo-Operation erhalten wurde.
Das obige ist der detaillierte Inhalt vonWie stellt man positive Ergebnisse sicher, wenn man den Moduloperator mit negativen Zahlen verwendet?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!