近似求π

来源:互联网 发布:plc编程线 编辑:程序博客网 时间:2024/05/23 21:28
近似求PI

本题要求编写程序,根据下式求π的近似值,直到最后一项小于给定精度eps。

2π=1+31!+3×52!+3×5×73!++3×5××(2×i+1)i!+

输入格式:

输入在一行中给出精度eps,可以使用以下语句来读输入:

scanf("%le", &eps);

输出格式:

在一行内,按照以下格式输出π的近似值(保留小数点后5位):

PI = 近似值

输入样例:

1E-5

输出样例:

PI = 3.14158

代码:

#include <stdio.h>double fact(int n);double oddfact(int n);int main(void){int i;double eps, x, sum = 0;scanf("%le", &eps);for (i = 0; (x = fact(i) / oddfact(i)) >= eps; i++)sum += x;sum += fact(i) / oddfact(i);printf("PI = %.5lf", sum * 2);return 0;}double fact(int n){if (n == 0) return 1;return n*fact(n - 1);}double oddfact(int n){if (n == 0) return 1;return (2 * n + 1)*oddfact(n - 1);}

原创粉丝点击