C++
 Computer >> コンピューター >  >> プログラミング >> C++

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ビット範囲の大きな数値を扱う計算処理では、積極的に活用するとよいでしょう。

  1. C++ STLのcosh()関数とは?双曲線余弦の求め方をサンプルコード付きで解説

    cosh()関数とは? C++のSTLに組み込まれているcosh()関数は、ラジアン単位で与えられた角度の双曲線余弦(ハイパボリック・コサイン)を計算して返す関数です。使用するには、<cmath>ヘッダーをインクルードする必要があります。 双曲線余弦は、数学的に次の式で定義されます。 cosh(x) = (e^x + e^(-x)) / 2 構文 cosh()関数の構文は以下の通りです。 cosh(var) 構文から分かるように、cosh()関数はfloat型、double型、long double型のいずれかの引数varを受け取ります。そして、その双曲線余弦を返します。なお、引

  2. 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