[解決済み】C / C++で整数の除算を高速に天井する
2022-03-28 15:31:45
質問
与えられた整数の値
x
と
y
CとC++は共に商として返す
q = x/y
は、浮動小数点数相当の床です。 代わりに天井を返す方法に興味があります。 例えば
ceil(10/5)=2
と
ceil(11/5)=3
.
明らかなアプローチには、次のようなものがあります。
q = x / y;
if (q * y < x) ++q;
この場合、余分な比較と乗算が必要になります。私が見た(実際に使った)他の方法では、キャストとして
float
または
double
. 追加の乗算(または第2の除算)と分岐を回避し、浮動小数点数としてのキャストも回避できる、より直接的な方法はないでしょうか?
どのように解決するのですか?
正の数の場合
unsigned int x, y, q;
切り上げるには ...
q = (x + y - 1) / y;
または(x+yのオーバーフローを回避するため)
q = 1 + ((x - 1) / y); // if x != 0
関連
-
[解決済み】構造体のベクター初期化について
-
[解決済み】C++ 非推奨の文字列定数から「char*」への変換について
-
[解決済み】C++でユーザー入力を待つ【重複あり
-
[解決済み】C++でランダムな2倍数を生成する
-
[解決済み] 整数の平方根が整数であるかどうかを判断する最速の方法
-
[解決済み] JavaScriptで整数の除算を行い、余りを別途取得する方法は?
-
[解決済み] JavaScriptで、数値が精度を失うことなく到達できる最も高い整数値は何ですか?
-
[解決済み] 32ビット整数のセットビットの数を数えるには?
-
[解決済み] 整数の割り算の結果を丸めるには?
-
[解決済み】pythonでfloatをintegerに変換する最も安全な方法?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】LLVMで暗黙のうちに削除されたコピーコンストラクタの呼び出し
-
[解決済み] [Solved] Error C1083: Cannot open include file: 'stdafx.h'
-
[解決済み】 != と =! の違いと例(C++の場合)
-
[解決済み】C++ 式はポインタからオブジェクトへの型を持っている必要があります。
-
[解決済み】C++の変数はイニシャライザーを持っているが、不完全な型?
-
[解決済み] 非常に基本的なC++プログラムの問題 - バイナリ式への無効なオペランド
-
[解決済み] 非静的データメンバの無効な使用
-
[解決済み] 変数サイズのオブジェクトが初期化されないことがある c++
-
[解決済み】整数の割り算が常に切り上げられるようにするにはどうしたらいいですか?
-
[解決済み] 数値の倍数への切り上げ