C++ STLのlldiv()関数の使い方を徹底解説
C++ STLのlldiv()関数は、2つの整数(long long型)の除算を行い、その結果である「商(quot)」と「余り(rem)」を同時に取得できる便利な関数です。通常、商と余りを別々に求める場合は演算を2回行う必要がありますが、lldiv()を使えば1回の呼び出しで両方の値を効率的に得ることができます。
基本構文と戻り値
lldiv()はヘッダーファイル <cstdlib> で定義されており、以下のような形式で使用します。
lldiv_t lldiv(long long numer, long long denom);
引数には被除数(割られる数)と除数(割る数)を指定します。戻り値は lldiv_t 構造体で、この構造体には以下の2つのメンバーが含まれています。
- quot: 除算の商(整数部分)
- rem: 除算の剰余(余り)
処理の流れ(アルゴリズム)
Begin long long型の数値を2つ入力として受け取る。 lldiv()関数を呼び出す。 商と余りを出力する。 End.
サンプルコード
以下に、lldiv()関数を使用した具体的なプログラム例を示します。
#include <cstdlib>
#include <iostream>
using namespace std;
int main() {
long long q = 500LL;
long long r = 25LL;
lldiv_t res = lldiv(q, r);
cout << "500 ÷ 25 の商 = " << res.quot << endl;
cout << "500 ÷ 25 の余り = " << res.rem << endl;
return 0;
}
実行結果
500 ÷ 25 の商 = 20 500 ÷ 25 の余り = 0
関連する関数との違い
lldiv()と似た機能を持つ関数には、div()(int型用)と ldiv()(long型用)があります。それぞれ扱うデータ型が異なり、大きな数値を扱う場合は64ビット整数に対応したlldiv()が適しています。
| 関数名 | 対応するデータ型 |
|---|---|
| div() | int |
| ldiv() | long |
| lldiv() | long long |
まとめ
lldiv()関数は、long long型の整数除算において商と余りを一度に取得できるため、コードの簡潔さとパフォーマンスの両面でメリットがあります。特に64ビット範囲の大きな数値を扱う計算処理では、積極的に活用するとよいでしょう。
-
C++ STLのcosh()関数とは?双曲線余弦の求め方をサンプルコード付きで解説
cosh()関数とは? C++のSTLに組み込まれているcosh()関数は、ラジアン単位で与えられた角度の双曲線余弦(ハイパボリック・コサイン)を計算して返す関数です。使用するには、<cmath>ヘッダーをインクルードする必要があります。 双曲線余弦は、数学的に次の式で定義されます。 cosh(x) = (e^x + e^(-x)) / 2 構文 cosh()関数の構文は以下の通りです。 cosh(var) 構文から分かるように、cosh()関数はfloat型、double型、long double型のいずれかの引数varを受け取ります。そして、その双曲線余弦を返します。なお、引
-
C++ STLのsinh()関数の使い方を徹底解説
sinh()関数とはsinh()関数は、ラジアンで指定された値の双曲線正弦(ハイパボリックサイン)を返す関数です。C++のSTL(標準テンプレートライブラリ)に組み込まれており、<cmath>ヘッダをインクルードすることで利用できます。双曲線正弦は、以下の数式で定義されます。sinh(x) = (e^x − e^−x) / 2sinh()関数の構文sinh()関数の構文は以下のとおりです。sinh(var)構文からわかるように、sinh()関数はfloat型、double型、long double型のいずれかのパラメータvarを受け取ります。戻り値は、varの双曲線正弦です。sin