C++でラマヌジャンの公式を使った円周率計算をする

詳しくはここ

C++で書く。Pythonとは違い大きな数を扱えないので注意。

#include<iostream>
#include<math.h>
int factorial(int);

int main() {
    int N = 1;
    double num, den;

    double sum = 0;

    for (int n = 0; n < N; n++) {
        num = std::pow((-1), n) * factorial(4 * n) * (1123 + 21460 * n);
        den = std::pow(882, (2 * n + 1)) * std::pow((factorial(std::pow(4, n) * factorial(n))), 4);
        sum = sum + num / den;
        std::cout << 4 / sum << std::endl;
    }
}
int factorial(int k) {
    int sum = 1;
    for (int i = 1; i <= k; ++i)
    {
        sum *= i;
    }
    return sum;
}

コメント

タイトルとURLをコピーしました