Heim > Backend-Entwicklung > C++ > Wie stellt man positive Ergebnisse sicher, wenn man den Moduloperator mit negativen Zahlen verwendet?

Wie stellt man positive Ergebnisse sicher, wenn man den Moduloperator mit negativen Zahlen verwendet?

Mary-Kate Olsen
Freigeben: 2025-01-13 13:42:44
Original
246 Leute haben es durchsucht

How to Ensure Positive Results When Using the Modulus Operator with Negative Numbers?

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage