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

最初のn個の自然数の立方和を求めるC++プログラム

1、2、3、4…といった正の整数は「自然数」と呼ばれます。

本記事では、ユーザーから正の整数 n を入力として受け取り、13+23+33+…+n3 の値(つまり最初の n 個の自然数の立方和)を計算して表示する C++ プログラムを紹介します。

入力と出力の例

入力:n = 3
出力:36

計算の流れ

13+23+33 = 1 + 8 + 27 = 36

このように、1 から n までの各整数を 3 乗し、それらをすべて足し合わせたものが求める値になります。

C++での実装例(ループを使用する方法)

最も基本的な方法は、for ループで 1 から n まで順番に処理しながら、各数値の 3 乗を累積変数に加算していくアプローチです。

#include <iostream>
using namespace std;

int main() {
    int n = 3;      // 求めたい項数
    int sum = 0;    // 立方和を格納する変数

    // 1からnまで各数値の3乗を加算
    for (int x = 1; x <= n; x++)
        sum += x * x * x;

    cout << sum;    // 結果を出力
    return 0;
}

補足:数学的な公式を使う方法

実は、最初の n 個の自然数の立方和には次のような美しい公式が成り立ちます。

13+23+…+n3 = { n(n+1) / 2 }2

この公式を使えば、ループ処理を行わずに O(1) の計算量で即座に答えを求めることができます。例えば n = 3 の場合、「3 × 4 / 2 = 6」、その 2 乗で「36」となり、先ほどの結果と一致します。大きな n を扱う場合やパフォーマンスが重視される場面では、こちらの公式を利用するのが効率的です。

  1. C言語で最初のn個の自然数の立方和を求めるプログラム

    この記事では、最初のn個の自然数(1からnまで)の立方和を求める方法について解説します。基本的なアプローチとしては、1からnまで繰り返すforループを1つ使い、各ステップでその項の立方を計算して合計に加算していきます。この方法の計算量はO(n)です。しかし、O(1)つまり定数時間でこの問題を解きたい場合は、以下の級数の公式を利用できます。1³ + 2³ + 3³ + … + n³ = {n(n+1)/2}²アルゴリズムcubeNNatural(n)begin sum := 0 for i in range 1 to n, do sum := sum + i^3

  2. 最初のn個の自然数の二乗和を求めるC++プログラムの解説

    はじめにこの記事では、最初のn個の自然数(1からnまで)の二乗和を求める方法について解説します。例えば、n = 4 の場合、計算結果は 1² + 2² + 3² + 4² = 1 + 4 + 9 + 16 = 30 となります。基本的なアプローチとしては、1からnまで繰り返すforループを使用し、各ステップで項の二乗を計算して合計に加算していく方法があります。このプログラムの計算量は O(n) です。しかし、O(1) の定数時間で解きたい場合は、次の級数の公式を利用できます。Σk² = n(n + 1)(2n + 1) / 6この公式を使えば、ループ処理を行わずに一発で答えを求めることが可能で