Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 用级数计算pi_C_For Loop_Nested Loops_Series_Pi - Fatal编程技术网

C 用级数计算pi

C 用级数计算pi,c,for-loop,nested-loops,series,pi,C,For Loop,Nested Loops,Series,Pi,我想用Rabinowitz的Spinot算法计算pi。它是由两个阶乘和一个幂组成的无限和: 问题是我编写了简单的程序来计算阶乘和幂,但我需要将它们组合在一个for循环中。然后计算总数 以下是我首先做的: 但它不起作用。 pi计算背后的原始想法是正确的吗?用这些级数计算pi可行吗? 如果是,我的错误是什么? 任何帮助都将不胜感激。提前谢谢 #include <stdio.h> int main() { float factorialn,n,sqr,power,factoriald

我想用Rabinowitz的Spinot算法计算pi。它是由两个阶乘和一个幂组成的无限和:

问题是我编写了简单的程序来计算阶乘和幂,但我需要将它们组合在一个for循环中。然后计算总数

以下是我首先做的:

但它不起作用。 pi计算背后的原始想法是正确的吗?用这些级数计算pi可行吗? 如果是,我的错误是什么? 任何帮助都将不胜感激。提前谢谢

#include <stdio.h>

int main()
{
  float factorialn,n,sqr,power,factoriald,f;
  factorialn=1;
  n=10;
  power=2;
  factoriald=1;
  for(int i=1;i<=n;i++)
  {
    factorialn*=i;
  }
  sqr=factorialn*factorialn;
  for(int i=1;i<=n;i++)
  {
    power=power*2;
  }
  for(int i=1;i<=2*n+1;i++)
  {
    factoriald=factoriald*i;
  }
  printf("factorialn square is: %10f",sqr);
  printf("Pow of 2 to the n+1: %10f",power);
  printf("Factoriald: %10f",factoriald);

  return 0;
}
#包括
int main()
{
浮点阶乘n,n,sqr,幂,阶乘d,f;
因子n=1;
n=10;
功率=2;
factoriald=1;

for(int i=1;i21!)对于64位无符号long太大

我将所有内容都更改为长双精度,使用2初始化
sum
,并使用
I
重新定义
factoriald
循环计算

#include <stdio.h>

int main(void) {
    long double factorialn, n, power, factoriald;
    long double sum = 2;
    factorialn = 1;
    n = 10;
    power = 2;
    factoriald = 1;
    for (int i = 1; i <= n; i++) {
        factorialn *= i;
        power *= 2;
        for (int j = 2 * i; j <= 2 * i + 1; j++) {
            factoriald *= j;
        }
        sum += factorialn * factorialn * power / factoriald;
    }
    printf("summa %1.16Lf\n", sum);
    return 0;
}
#包括
内部主(空){
长双阶乘n,n,幂,阶乘d;
长双和=2;
因子n=1;
n=10;
功率=2;
factoriald=1;

对于(int i=1;我请直接以纯文本形式发布代码,不要使用图像。旁白:
(i!)^2
将是一个非常大的数字。提示:在
factoriald
的内部计算中,不要在
1
处启动
j
。我确实发布了纯文本@Alex.@pmg j计算应从哪里开始?
#include <stdio.h>

int main(void) {
    long double factorialn, n, power, factoriald;
    long double sum = 2;
    factorialn = 1;
    n = 10;
    power = 2;
    factoriald = 1;
    for (int i = 1; i <= n; i++) {
        factorialn *= i;
        power *= 2;
        for (int j = 2 * i; j <= 2 * i + 1; j++) {
            factoriald *= j;
        }
        sum += factorialn * factorialn * power / factoriald;
    }
    printf("summa %1.16Lf\n", sum);
    return 0;
}