Heim > Backend-Entwicklung > C++ > Wie kann man in C effizient auf das nächste Vielfache aufrunden?

Wie kann man in C effizient auf das nächste Vielfache aufrunden?

DDD
Freigeben: 2024-11-29 03:10:09
Original
258 Leute haben es durchsucht

How to Efficiently Round Up to the Nearest Multiple in C  ?

Bester Ansatz zum Aufrunden auf Vielfache in C

In C kann das Aufrunden einer Zahl auf das nächste Vielfache einer bestimmten Zahl sein effektiv mit der folgenden Technik erreicht:

int RoundUp(int numToRound, int Vielfaches)<br>{</p>
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">if (multiple == 0)
    return numToRound;

int remainder = numToRound % multiple;
if (remainder == 0)
    return numToRound;

return numToRound + multiple - remainder;
Nach dem Login kopieren

}

Diese Methode nutzt grundlegende Ganzzahlarithmetik, um das nächste Vielfache für positive Zahlen zu berechnen. Es ist unkompliziert und funktioniert effizient.

Umgang mit negativen Zahlen

Beim Runden negativer Zahlen wird die Definition von „auf“ mehrdeutig. Abhängig vom konkreten Anwendungsfall können unterschiedliche Interpretationen des Aufrundens angemessen sein. Die bereitgestellte Lösung geht davon aus, dass Aufrunden ein Ergebnis bedeutet, das immer größer oder gleich der Eingabezahl ist:

int RoundUp(int numToRound, int multiple)<br>{</p>
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">if (multiple == 0)
    return numToRound;

int remainder = abs(numToRound) % multiple;
if (remainder == 0)
    return numToRound;

if (numToRound < 0)
    return -(abs(numToRound) - remainder);
else
    return numToRound + multiple - remainder;
Nach dem Login kopieren

}

Diese modifizierte Funktion stellt sicher, dass unabhängig vom Vorzeichen der Eingabe Zahl, das Ergebnis wird niemals kleiner sein als die Eingabe selbst.

Das obige ist der detaillierte Inhalt vonWie kann man in C effizient auf das nächste Vielfache aufrunden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Vorheriger Artikel:Warum gibt „std::queue::pop()“ keinen Wert zurück? Nächster Artikel:Wie kann ich in C einen Flattening-Iterator erstellen, um über verschachtelte Container zu iterieren?
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
Aktuelle Ausgaben
verwandte Themen
Mehr>
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage