逆数級数の和を計算する

C++C++Beginner
今すぐ練習

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

はじめに

この実験では、級数の和を計算する C++ プログラムを書く方法を学びます。扱う級数は、自然数の逆数の二乗の和です。簡単に言えば、このプログラムは 1 + 1/2^2 + 1/3^3 + 1/4^4 +... + 1/N^N の和を計算します。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL cpp(("C++")) -.-> cpp/FunctionsGroup(["Functions"]) cpp(("C++")) -.-> cpp/IOandFileHandlingGroup(["I/O and File Handling"]) cpp(("C++")) -.-> cpp/StandardLibraryGroup(["Standard Library"]) cpp(("C++")) -.-> cpp/SyntaxandStyleGroup(["Syntax and Style"]) cpp(("C++")) -.-> cpp/BasicsGroup(["Basics"]) cpp(("C++")) -.-> cpp/ControlFlowGroup(["Control Flow"]) cpp/BasicsGroup -.-> cpp/variables("Variables") cpp/BasicsGroup -.-> cpp/data_types("Data Types") cpp/ControlFlowGroup -.-> cpp/for_loop("For Loop") cpp/FunctionsGroup -.-> cpp/function_parameters("Function Parameters") cpp/IOandFileHandlingGroup -.-> cpp/output("Output") cpp/IOandFileHandlingGroup -.-> cpp/user_input("User Input") cpp/IOandFileHandlingGroup -.-> cpp/files("Files") cpp/StandardLibraryGroup -.-> cpp/math("Math") cpp/SyntaxandStyleGroup -.-> cpp/code_formatting("Code Formatting") subgraph Lab Skills cpp/variables -.-> lab-96193{{"逆数級数の和を計算する"}} cpp/data_types -.-> lab-96193{{"逆数級数の和を計算する"}} cpp/for_loop -.-> lab-96193{{"逆数級数の和を計算する"}} cpp/function_parameters -.-> lab-96193{{"逆数級数の和を計算する"}} cpp/output -.-> lab-96193{{"逆数級数の和を計算する"}} cpp/user_input -.-> lab-96193{{"逆数級数の和を計算する"}} cpp/files -.-> lab-96193{{"逆数級数の和を計算する"}} cpp/math -.-> lab-96193{{"逆数級数の和を計算する"}} cpp/code_formatting -.-> lab-96193{{"逆数級数の和を計算する"}} end

プロジェクトディレクトリに新しいファイルを作成する

プロジェクトディレクトリに main.cpp という名前の新しいファイルを作成します。

touch ~/project/main.cpp

必要なヘッダーファイルを追加する

プログラムに必要なヘッダーファイルを追加します。このプログラムでは、iostreamcmath のヘッダーファイルが必要です。

#include<iostream>
#include<cmath>
using namespace std;

findsum() 関数を書く

このステップでは、級数の和を計算するために使用される findsum() 関数を定義します。この関数は N の値を入力として受け取り、級数の和を返します。

double findsum(int N) {
    double sum = 0;
    for(int i=1; i<=N; i++) {
        sum += pow((double)1/i,i);
    }
    return sum;
}

上記のコードでは、各項の累乗を計算するために <cmath> ヘッダーファイルの pow() 関数を使用しています。また、正確な値を得るために double 型を使用しています。

main() 関数を書く

このステップでは、整数 N の形式でユーザーから入力を受け取る main() 関数を書きます。その後、級数の和を計算するために findsum() 関数を呼び出します。最後に、結果を表示します。

int main() {
    int N;
    cout << "Enter the value of N: ";
    cin >> N;
    double sum = findsum(N);
    cout << "Sum of the series is: " << sum << endl;
    return 0;
}

プログラムをコンパイルして実行する

main.cpp ファイルに加えた変更を保存し、ターミナルで次のコマンドを実行します。

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

正常にコンパイルと実行が完了すると、ユーザーに N の値を入力するよう求められます。N の値を入力した後、プログラムは級数の和を返します。

main.cpp ファイルの完全なコード:

#include <iostream>
#include <cmath>

using namespace std;

double findsum(int N) {
    double sum = 0;
    for(int i=1; i<=N; i++) {
        sum += pow((double)1/i,i);
    }
    return sum;
}

int main() {
    int N;
    cout << "Enter the value of N: ";
    cin >> N;
    double sum = findsum(N);
    cout << "Sum of the series is: " << sum << endl;
    return 0;
}

まとめ

この実験では、C++ プログラムを書いて級数の和を計算する方法を学びました。すべての項を反復処理するためにループを使用し、級数の和を取得するためにそれらを加算しました。また、各項の累乗を計算するために pow() 関数を使用しました。