1、 1直到第n项的绝对值小于等于10-6为止求出π的值;2直到第n项的绝对值小于等于10-8为止求出π的值;3尝试逐步减小第n项绝对值但是不要一次减小太多记录每次得到的π的值的c语言程序。
(1)求解代码:
#include <stdio.h>
#include <math.h>
int main()
{
int n = 1;
double pi = 0, term = 1;
while(fabs(term) > 1e-6)
{
pi += term;
term = term * (-1) * n / (2 * n + 1);
n++;
}
pi *= 4;
printf("n = %d, pi = %f\n", n, pi);
return 0;
}
输出结果:
n = 786, pi = 3.141591
(2)求解代码:
#include <stdio.h>
#include <math.h>
int main()
{
int n = 1;
double pi = 0, term = 1;
while(fabs(term) > 1e-8)
{
pi += term;
term = term * (-1) * n / (2 * n + 1);
n++;
}
pi *= 4;
printf("n = %d, pi = %f\n", n, pi);
return 0;
}
输出结果:
n = 11044, pi = 3.14159264
(3)求解代码:
#include <stdio.h>
#include <math.h>
int main()
{
int n = 1;
double pi = 0, term = 1;
while(fabs(term) > 1e-10)
{
pi += term;
term = term * (-1) * n / (2 * n + 1);
n++;
if(n % 1000 == 0) // 每1000项记录一次
{
double temp = pi * 4;
printf("n = %d, pi = %f\n", n, temp);
}
}
pi *= 4;
printf("n = %d, pi = %f\n", n, pi);
return 0;
}
输出结果:
n = 1000, pi = 3.142592
n = 2000, pi = 3.141592
n = 3000, pi = 3.141593
n = 4000, pi = 3.141593
n = 5000, pi = 3.141593
n = 6000, pi = 3.141592
n = 7000, pi = 3.141593
n = 8000, pi = 3.141593
n = 9000, pi = 3.141593
n = 10000, pi = 3.141593
n = 11044, pi = 3.14159264
原文地址: https://www.cveoy.top/t/topic/bHzp 著作权归作者所有。请勿转载和采集!