1.7 整数除算で端数切り上げ(商のみ)
浮動小数点数の小数部を切り上げる関数としては ceil がありますが、次のテンプレートはその整数版です。整数同士の除算 (dividend ≥ 0, divisor > 0) において、小数部分を切り上げた商を返します。
template<class T>
T ceil(T dividend, T divisor)
{
return (dividend + (divisor - 1)) / divisor;
}
また、以下はその整数定数版です。
template<long L, long R>
struct iceil
{
static const long value = (L + (R - 1)) / R;
};
使用例:
cout << ceil(3, 2) << endl; cout << iceil<3, 2>::value << endl;
※ std:: は省略しています。
元ネタ
ブックナビゲーション
- 技術情報
- Boost C++ Libraries メモ
- C++と組込み環境
- C++サンプル集
- C++テンプレート集
- 1. 整数型に関するテンプレート
- 1.1 指定された整数型が符号付きか否かを判定する。
- 1.2 指定された整数型が 2 の補数表現か否かを判定する。
- 1.3 指定された整数型が1の補数表現か否かを判定する。
- 1.4 指定された整数型が「符号ビット+絶対値」か否かを判定する。
- 1.5 指定された整数型が表現可能な最小値および最大値を返す。
- 1.6 各種整数型の仕様を調べるテストプログラム
- 1.7 整数除算で端数切り上げ(商のみ)
- 1.8 整数除算で端数切り上げ(商+剰余)
- 1.9 整数除算で端数切り下げ(商+剰余)
- 1.10 整数除算(商+剰余, 標準 C ライブラリの汎用版)
- 1.11 最大公約数を求める。
- 1.12 無符号整数の最下位の '1' のビットだけを抽出する。
- 2. 数値型に関するテンプレート
- 3. 配列に関するテンプレート
- 4. 構造体に関するテンプレート
- 5. 一般のデータ型に関するテンプレート
- 6. メモリ上のデータ操作テンプレート
- 7. 文字・文字列・文字コードに関するテンプレート
- 8. 入出力に関するテンプレート
- 9. エンディアンに関するテンプレート
- 10. 日付・グレゴリオ暦計算テンプレート
- 11. 双方向線型リスト処理テンプレート
- 101. 整数型に関するテンプレート(オリジナル)
- 102. 文字種別に関するテンプレート(オリジナル)
- 103. 入出力に関するテンプレート(オリジナル)
- 1. 整数型に関するテンプレート
- C++プログラマのためのC言語入門
- C/C++迷信集
- C99関数・マクロ・前処理スクリプト集
- C言語再入門
- C言語徹底入門
- Drupal メモ
- TOPPERS 情報
- ベターCとしてのC++
- マイコン メモ
- ライブラリ開発入門
- 分割コンパイルをきわめる
- 擬似プロセッサを作る
- 象の卵を探して...
- 車輪の再発明
- 過去の情報

