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

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

Linda Hamilton
Freigeben: 2024-12-02 01:38:13
Original
189 Leute haben es durchsucht

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

Das Aufrunden von Zahlen auf das nächste Vielfache in C

Das Aufrunden von Zahlen auf das nächste Vielfache ist eine grundlegende Operation in der Programmierung. In C kann dies durch einfache Ganzzahlberechnung erreicht werden.

Einfacher Aufrundungsalgorithmus

Der anfängliche Algorithmus sucht nach einem Vielfachen von 0 und gibt dabei die ursprüngliche Zahl zurück Fall. Andernfalls berechnet es den abgerundeten Wert und addiert das Vielfache dazu. Dieser Ansatz funktioniert jedoch nur für positive Zahlen.

Verbesserter Rundungsalgorithmus

Um das Problem negativer Zahlen anzugehen, ist ein robusterer Algorithmus erforderlich. Diese verbesserte Version nutzt den absoluten Wert der Zahl und stellt sicher, dass das gerundete Ergebnis immer größer oder gleich der Eingabe ist.

Implementierung:

int roundUp(int numToRound, int multiple) {
    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

Dies Der Algorithmus verarbeitet sowohl positive als auch negative Zahlen korrekt und liefert die erwarteten gerundeten Werte, wie in den bereitgestellten Beispielen angegeben.

Das obige ist der detaillierte Inhalt vonWie kann man Zahlen 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
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