総和の計算

数学で総和を意味する $\sum$ の計算は、for 文を用いて求めることができます。

たとえば、以下の式について考えます。

$\sum_{k=m}^{n} a_k = a_m + a_{m+1} + \cdots + a_n$

この式は for 文を用いて以下のように書くことができます。

int sum = 0;

for ( k = m; k <= n; k++ ){
  sum += a[k];
}

numericをインクルードすることで、配列等の指定範囲の要素の合計を求めるaccumulate関数を使うことができます。たとえば、以下のプログラムは配列の要素の総和を求めます。

#include<iostream>
#include<numeric>
using namespace std;

int main(){
  int a[6] = {1, 2, 3, 4, 5, 6};
  cout << accumulate(a, a + 6, 0) << endl; // 21
  return 0;
}

accumulate関数の引数は、配列(シーケンス)の範囲における、始点のアドレズ、終点のアドレス(終点を含まない)、総和の初期値になります。


Reference

 

オンラインジャッジではじめるC/C++プログラミング入門 (マイナビ)

AIZU ONLINE JUDGE のコース問題を題材にした解説書です。各トピックごとに C/C++ 言語の基礎的な内容を学習し、Introduction to Programming の演習問題にチャレンジしていきます。内容は敷居の高いものではなく、プログラミング初学者が取り組む例題からスタートしています。