以下に、いくつかの一般的な方法を示します。
-
ループを使用する方法:
int rangeSum(int arr[], int start, int end) { int sum = 0; for (int i = start; i <= end; i++) { sum += arr[i]; } return sum; }
-
STLのaccumulate関数を使用する方法:
#include <numeric> // accumulate関数を使用するために必要なヘッダ int rangeSum(int arr[], int start, int end) { return std::accumulate(arr + start, arr + end + 1, 0); }
-
再帰を使用する方法:
int rangeSumRecursive(int arr[], int start, int end) { if (start == end) { return arr[start]; } else { int mid = (start + end) / 2; int leftSum = rangeSumRecursive(arr, start, mid); int rightSum = rangeSumRecursive(arr, mid + 1, end); return leftSum + rightSum; } }
これらの方法は、範囲合計を計算するための一般的な手法です。適切な方法は、問題の要件や制約によって異なる場合があります。
以上が、C++における範囲合計のための簡単な方法といくつかのコード例です。適切な方法を選択し、問題に応じて適用してください。