в этом вопросе мне было поручено написать программу, которая печатает пи на основе серии мадава, используя функцию pi () и функцию power ().
Это исходный код, который я написал.
#include <cmath>
#include <stdio.h>
using namespace std;
double pi();
double power(int x, int y);
int n;
int main()
{
double ret;
ret=pi();
printf("%.16fn",ret);
printf("%.16e", ret-M_PI);
return 0;
}
double pi()
{
double j, result;
int x, k, n;
printf("Input value of n:");
scanf("%d",&n);
result=0;
for( k=0; k<n; k++ )
{
result += power(-3, -k) / (2*k+1);
}
j=(sqrt(12))*result;
return j;
}
double power(int x, int y) {
if (y == 0)
return 1;
double temp = power(x, y/2);
if (y % 2 == 0)
return temp * temp;
else{
if(y > 0)
return temp * temp * x;
else
return temp * temp / x;
}
}
Контрольная работа: