C++で級数 (1×1) + (2×2) + (3×3) + … + (n×n) の合計を求めるプログラム
このチュートリアルでは、級数 (1*1) + (2*2) + (3*3) + (4*4) + (5*5) + … + (n*n) の合計を求めるC++プログラムについて解説します。
この問題では、nの値が与えられます。私たちのタスクは、最初の項から順番にすべての項を加算していき、級数全体の合計を求めることです。
実装例
#include <iostream>
using namespace std;
// 級数の合計を計算する関数
int calc_sum(int n) {
int i;
int sum = 0;
for (i = 1; i <= n; i++)
sum += (i * i);
return sum;
}
int main() {
int n = 7;
int res = calc_sum(n);
cout << res << endl;
return 0;
}
出力結果
140
プログラムの解説
このプログラムでは、calc_sum 関数の中でforループを使用しています。変数 i を1からnまで繰り返しながら、各項の二乗(i * i)を変数 sum に加算していきます。
n = 7 の場合、計算過程は以下のようになります。
1 + 4 + 9 + 16 + 25 + 36 + 49 = 140
数学的公式を使った別解
1からnまでの二乗の和には、次のような有名な公式が成り立ちます。
Σ k² = n × (n + 1) × (2n + 1) / 6
この公式を利用すれば、ループ処理を行わずにO(1)の時間計算量で合計を求めることができ、大きなnに対しても高速に計算できます。
-
C++で級数 23+45+75+… の最初のN項の合計を求める方法
このチュートリアルでは、級数 23 + 45 + 75 + … の最初のN項までの合計を求めるC++プログラムについて解説します。具体的には、値Nが与えられたとき、第1項から第N項までのすべての項を順番に足し合わせ、級数全体の合計を求めることが課題となります。級数の合計を求める公式この問題を数学的に解くと、級数の合計は次の公式で表すことができます。Sn = (2n(n+1)(4n+17) + 54n) / 6この公式を使えば、各項を1つずつ足していく反復処理を行わなくても、O(1)の計算量で瞬時に合計を求められます。Nが大きくなっても高速に動作するのが大きなメリットです。実装例#include
-
C++で級数(1/a + 2/a² + 3/a³ + … + n/aⁿ)の合計を求めるプログラム
級数の合計を求めるC++プログラムこのチュートリアルでは、次の級数の合計を求めるC++プログラムについて解説します。1/a + 2/a2 + 3/a3 + … + n/anこの問題では、aとnの値が与えられます。第1項から第n項までのすべての項を順番に足し合わせることで、級数全体の合計を計算するのが課題です。解法のアプローチ各項は「i / ai」という形で一般化できます。そこで、forループでiを1からnまで変化させながら、pow関数を使ってaのi乗を求め、各項の値を合計変数に加算していきます。サンプルコード#include <iostream> #include <math