はじめに
この実験では、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 ループを開始する前に、sum を 0 に初期化します。
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 つは数学的な公式を使用します。どちらの方法も任意の等差数列の和を求めるために使用できます。



