Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann ich eine ganze Zahl in C effizient auf das nächste Vielfache aufrunden?

Wie kann ich eine ganze Zahl in C effizient auf das nächste Vielfache aufrunden?

DDD
DDDOriginal
2024-11-25 14:21:12322Durchsuche

How can I efficiently round up an integer to the nearest multiple in C  ?

Ganzzahlen auf Vielfache aufrunden

In C ist das Aufrunden eines ganzzahligen Werts auf das nächste Vielfache einer anderen Zahl eine unkomplizierte Operation. Die folgende Funktion erledigt diese Aufgabe effizient und genau:

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;
    }
}

Diese Funktion benötigt zwei ganzzahlige Argumente: den zu rundenden Wert (numToRound) und das Vielfache, auf das aufgerundet werden soll (multiple). Sie gibt den aufgerundeten Wert als Ganzzahl zurück.

Die Funktion prüft zunächst, ob das Vielfache Null ist. Wenn dies der Fall ist, gibt die Funktion den ursprünglichen Wert unverändert zurück.

Wenn das Vielfache nicht Null ist, berechnet die Funktion den absoluten Wert des Rests der Division von numToRound durch ein Vielfaches. Dies gibt die Differenz zwischen dem Originalwert und dem nächsten Vielfachen darunter an.

Als nächstes prüft die Funktion, ob der Originalwert negativ ist. Ist dies der Fall, wird der aufgerundete Wert entsprechend angepasst, um sicherzustellen, dass er immer noch größer oder gleich dem ursprünglichen Wert ist. Bei positiven Werten addiert die Funktion einfach den erforderlichen Betrag zum Aufrunden auf das nächste Vielfache.

Beispiele

Betrachten Sie die folgenden Beispiele:

  • roundUp(7, 100) → 100
  • roundUp(117, 100) → 200
  • roundUp(477, 100) → 500
  • roundUp(52, 20) → 60
  • roundUp(74, 30) → 90

In jedem Fall rundet die Funktion den ursprünglichen Wert korrekt auf das nächste Vielfache des angegebenen Wertes auf mehrfach.

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

Stellungnahme:
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