C++でSTLを使ってベクトルの要素の合計を求める方法
このチュートリアルでは、C++のSTL(標準テンプレートライブラリ)を使用して、ベクトル内の要素の合計を求める方法について詳しく解説します。
ベクトルの要素の合計を計算する場合、STLのnumericヘッダーに含まれているaccumulate()関数を使うのが最もシンプルで効率的な方法です。
accumulate()関数とは
accumulate()は、指定された範囲内のすべての要素を順番に加算し、その合計値を返す関数です。第3引数には初期値を指定します。通常は0を指定しますが、この初期値を変更することで、合計に任意の値を加算することもできます。
サンプルコード
#include <bits/stdc++.h>
using namespace std;
int main(){
// ベクトルの定義
vector<int> a = { 1, 45, 54, 71, 76, 12 };
cout << "Vector: ";
for (int i = 0; i < a.size(); i++)
cout << a[i] << " ";
cout << endl;
// 要素の合計を計算
cout << "Sum = " << accumulate(a.begin(), a.end(), 0);
return 0;
}
実行結果
Vector: 1 45 54 71 76 12 Sum = 259
コードの解説
このプログラムでは、まず6つの整数を持つベクトルaを定義し、forループを使ってその内容をすべて出力しています。
その後、accumulate(a.begin(), a.end(), 0)を呼び出すことで、イテレータa.begin()からa.end()までの範囲にあるすべての要素を加算し、合計値である「259」を出力しています。
注意点
accumulate()を使用する際は、<numeric>ヘッダーをインクルードする必要があります。上記のサンプルコードでは<bits/stdc++.h>を使用しているため、標準ライブラリ全体が読み込まれ、個別のインクルードは不要です。ただし、実際のプロジェクトでは必要なヘッダーのみをインクルードすることが推奨されます。
-
C++でN階乗の合計の下一桁(一の位)を求める方法
この記事では、C++を使って「1! + 2! + ... + N!」という階乗の合計の下一桁(一の位)を求める方法を解説します。例えばN = 3の場合、1! + 2! + 3! = 9 となるため答えは9、N = 4の場合は 1! + 2! + 3! + 4! = 33 となり、下一桁は3になります。階乗の下一桁の重要な性質この問題を解く鍵となるのは、5以上の数の階乗の下一桁が必ず0になるという性質です。5! = 120、6! = 720、7! = 5040 のように、5!以降はすべて一の位が0になります。これは、5以上の階乗には必ず因数2と5のペアが含まれ、10の倍数になるためです。したがっ
-
NumPyで行列の全要素の合計を求める方法|sum()関数の使い方を解説
本記事では、NumPyライブラリに用意されているsum()関数を使って、行列(マトリクス)内のすべての要素を合計する方法を解説します。まずrandom()関数でランダムなNumPy行列を生成し、続いてその全要素の合計値を取得する流れを見ていきましょう。処理の手順(アルゴリズム)Step 1: numpyをインポートするStep 2: random()関数を使って m×n のランダムな行列を作成するStep 3: sum()関数を使って、行列内の全要素の合計を求めるサンプルコード以下のコードでは、np.random.rand(3, 3)によって3行3列のランダムな行列を生成し、np.sum()で