級数の和を求める

C++C++Beginner
オンラインで実践に進む

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、1 + 2 + 4 + 8 + 16 + 32 +... + n の級数の和を求める C++ プログラムを書く方法を学びます。2 つの異なるアプローチを使用します。最初のアプローチは、for ループを使ってシーケンス内の値を加算します。2 番目のアプローチは、数学的な公式を使って和を計算します。

新しいファイルを作成する

まず、ターミナルを開き、~/project ディレクトリに移動しましょう。このディレクトリに、main.cpp という名前の新しいファイルを作成します。これは次のコマンドを使って行うことができます。

touch ~/project/main.cpp

次に、好きなテキストエディタでこのファイルを開きます。

for ループを使用する

このアプローチでは、for ループを使ってシーケンスを反復し、1 から n までの数値を合計します。合計値を sum という変数に格納します。

main.cpp ファイルに次のコードを追加します。

#include <iostream>

int main() {
    int n, sum = 0;
    std::cout << "Enter the value of n: ";
    std::cin >> n;

    for(int i = 1; i <= n; ++i) {
        sum += i;
    }

    std::cout << "The sum of the sequence is: " << sum << std::endl;

    return 0;
}

ここでは、std::cout 関数を使って、ユーザーに n の値を入力するように求めるメッセージを表示します。次に、std::cin 関数を使って、ユーザーが入力した n の値を読み取ります。for ループを開始する前に、sum0 に初期化します。

for ループは、i の値を 1 から n まで反復し、各値を sum に加算します。最後に、std::cout を使って合計値を表示します。

プログラムを実行する前に、コンパイルする必要があります。ターミナルで ~/project ディレクトリに移動し、次のコマンドを実行します。

g++ main.cpp -o main &&./main

これにより、プログラムがコンパイルされて実行されます。n の値を入力するように求めるメッセージが表示されるはずです。値を入力した後、プログラムはシーケンスの合計値を表示します。

数学的な公式を使用する

このアプローチでは、数学的な公式を使ってシーケンスの和を計算します。公式は sum = 2^n - 1 で、n はシーケンスの項数です。

main.cpp ファイルに次のコードを追加します。

#include <iostream>
#include <cmath>

int main() {
    int n;
    std::cout << "Enter the value of n: ";
    std::cin >> n;

    int sum = pow(2, n) - 1;

    std::cout << "The sum of the sequence is: " << sum << std::endl;

    return 0;
}

ここでは、std::pow 関数を使って 2^n を計算します。この値から 1 を引いて、シーケンスの和を求めます。そして、std::cout を使って和を表示します。

プログラムを実行する前に、コンパイルする必要があります。ターミナルで ~/project ディレクトリに移動し、次のコマンドを実行します。

g++ main.cpp -o main &&./main

これにより、プログラムがコンパイルされて実行されます。n の値を入力するように求めるメッセージが表示されるはずです。値を入力した後、プログラムはシーケンスの和を表示します。

完全なコード

以下は、main.cpp の完全なコードです。

#include <iostream>
#include <cmath>

int main() {
    int n;
    std::cout << "Enter the value of n: ";
    std::cin >> n;

    int sum = pow(2, n) - 1;

    std::cout << "The sum of the sequence is: " << sum << std::endl;

    return 0;
}

#include <iostream>

int main() {
    int n, sum = 0;
    std::cout << "Enter the value of n: ";
    std::cin >> n;

    for(int i = 1; i <= n; ++i) {
        sum += i;
    }

    std::cout << "The sum of the sequence is: " << sum << std::endl;

    return 0;
}

まとめ

この実験では、1 + 2 + 4 + 8 + 16 + 32 +... + n の級数の和を求めるための C++ プログラムを書く方法を学びました。2 つの異なるアプローチを使用しました。1 つは for ループを使用し、もう 1 つは数学的な公式を使用します。どちらの方法も任意の等差数列の和を求めるために使用できます。