ホームページ > バックエンド開発 > C++ > C で数値を最も近い倍数に効率的に切り上げるにはどうすればよいですか?

C で数値を最も近い倍数に効率的に切り上げるにはどうすればよいですか?

Susan Sarandon
リリース: 2024-11-26 14:04:13
オリジナル
386 人が閲覧しました

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

C での数値の倍数への切り上げ

プログラミングで数値を扱う場合、値を次のように切り上げる必要がある場合があります。別の数値の最も近い倍数。 C でこのタスクに取り組む方法は複数ありますが、この記事では、整数演算を利用して正確な丸めを実現する効率的な方法に焦点を当てます。

提供されているコード スニペット、roundUp は、正の数に対する簡単なソリューションを提供します。入力数値 numToRound を倍数で割ったときの剰余を計算し、剰余がゼロでない場合はその倍数を numToRound に加算します。これにより、結果が入力以上の最も近い倍数になることが保証されます。

ただし、負の数の場合、元のコードは望ましい動作を提供しません。負の数に対応するために、roundUp の修正バージョンが導入されています。このバージョンでは、丸め演算を実行する前に入力数値の絶対値が計算されます。さらに、条件付きロジックを使用して、入力の符号に基づいて結果の符号を調整します。これにより、符号に関係なく、結果が常に入力以上になることが保証されます。

正の数値と負の数値の両方を処理するための更新されたコードは次のとおりです。

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;
}
ログイン後にコピー

ここで、 RoundUp 関数は、正の入力と負の入力の両方に対して一貫した動作を提供し、指定された数値の最も近い倍数への正確な丸めを保証します。

以上がC で数値を最も近い倍数に効率的に切り上げるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート