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

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

DDD
リリース: 2024-11-29 03:10:09
オリジナル
280 人が閲覧しました

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

C で倍数に切り上げるための最良のアプローチ

C では、指定された数値の最も近い倍数に数値を切り上げることは次のようになります。次の手法を使用して効果的に達成されます:

introundUp(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 = numToRound % multiple;
if (remainder == 0)
    return numToRound;

return numToRound + multiple - remainder;
ログイン後にコピー

}

このメソッドは、基本的な整数演算を利用して、正の数の最も近い倍数を計算します。

負の数値の処理

負の数値を四捨五入する場合、「上」の定義があいまいになります。特定のアプリケーションに応じて、切り上げの異なる解釈が適切な場合があります。提供されるソリューションでは、切り上げとは常に入力数値以上の結果を意味すると想定しています:

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

}

この変更された関数により、次のことが保証されます。入力数値の符号に関係なく、結果が入力そのものより小さくなることはありません。

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

ソース:php.cn
前の記事:`std::queue::pop()` が値を返さないのはなぜですか? 次の記事:C でフラット化イテレータを作成してネストされたコンテナを反復処理するにはどうすればよいですか?
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
最新の問題
関連トピック
詳細>
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート