C语言用公式求π近似值

终止条件: 某一项: 1 / n+2 < 10 ^ -6;

1e-6即0.000001,

代码如下:

 1 #include<stdio.h>
 2 #include <math.h>
 3
 4 int main() {
 5     double quarter = 0;
 6     double PI = 0;
 7     int sign = -1;
 8     double term = 1.0;
 9     for ( ; 1.0 / term > 1e-6; ) {
10         // pow(10, -6) == 1e-6
11         sign = -1 * sign;
12         quarter = quarter + sign * (1.0 / term);
13         term = term + 2;
14     }
15     PI = quarter * 4;
16     printf("%.14f\n" ,PI);
17     return 0;
18 }

这里能算出精确到小数后14位,后面都是0.

结果:

3.141590653589692

原文地址:https://www.cnblogs.com/m-yb/p/11537888.html

时间: 2024-11-11 03:59:38

C语言用公式求π近似值的相关文章

BZOJ 3000(Big Number-Stirling公式求n!近似值)

3000: Big Number Time Limit: 2 Sec  Memory Limit: 128 MB Submit: 220  Solved: 62 [Submit][Status] Description 给你两个整数N和K,要求你输出N!的K进制的位数. Input 有多组输入数据,每组输入数据各一行,每行两个数--N,K Output 每行一个数为输出结果. Sample Input 2 5 2 10 10 10 100 200 Sample Output 1 1 7 69 对

【c语言】用π/4 ≈ 1 - 1/3 + 1/5 - 1/7 +... 公式求π的近似值,直到发现某一项的绝对值小于10^6为止。

// 用π/4 ≈ 1 - 1/3 + 1/5 - 1/7 +... 公式求π的近似值,直到发现某一项的绝对值小于10^6为止. #include <stdio.h> #include <math.h> int main() { double sign = 1.0; int i; double sum = 0.0; for(i = 1;fabs(i) < pow( 10,6 ); i = i + 2) { sum = sum + sign / i; sign = ( -1 )

【蓝桥杯】历届试题 公式求值

  历届试题 公式求值   时间限制:1.0s   内存限制:256.0MB 问题描述 输入n, m, k,输出下面公式的值. 其中C_n^m是组合数,表示在n个人的集合中选出m个人组成一个集合的方案数.组合数的计算公式如下. 输入格式 输入的第一行包含一个整数n:第二行包含一个整数m,第三行包含一个整数k. 输出格式 计算上面公式的值,由于答案非常大,请输出这个值除以999101的余数. 样例输入 313 样例输出 162 样例输入 201010 样例输出 359316 数据规模和约定 对于1

蓝桥杯-历届试题-公式求值

历届试题 公式求值 时间限制:1.0s   内存限制:256.0MB 问题描述 输入n, m, k,输出下面公式的值. 其中C_n^m是组合数,表示在n个人的集合中选出m个人组成一个集合的方案数.组合数的计算公式如下. 输入格式 输入的第一行包含一个整数n:第二行包含一个整数m,第三行包含一个整数k. 输出格式 计算上面公式的值,由于答案非常大,请输出这个值除以999101的余数. 样例输入 313 样例输出 162 样例输入 201010 样例输出 359316 数据规模和约定 对于10%的数

C语言中怎么求动态数组大小

先来个简单的例子 int a[] = {1,2,3}; int arr_len = 0; arr_len = sizeof(a)/sizeof(int); 解释:sizeof() 关键字是求出对象所占用的内存空间的大小,so, sizeof(a)是算出整个数组占用的空间的大小. 因为是整数数组,一个整数在32位系统上占用4个字节,不同的系统数值可能不同, 用sizeof(int)可以计算出 一个整数占用的内存空间大小.所以用sizeof(a)/sizeof(int)数组中有几个整数,也即算出了数

复合梯形公式与复合辛普森公式求积分

一 实验目的 1. 掌握复合梯形公式与复合辛普森公式的基本思想.2. 编程实现用复合梯形公式与复合辛普森公式求积分.3. 熟悉matlab软件的使用. 二 实验内容1.用复合梯形公式计算积分 I=4/(1+x2)dx ,求它0到1的积分.精确度为10-5.(0.00001),精确到 ●1 计算公式 h=(b-a)/n h=h/2[(f(x0)+f(x1))+(f(x1)+f(x2))+(f(x2)+f(x3)+...+(f(xn-1)+f(xn)] l1 算法分析 En=h2/12[f'(b)-

下列给定程序中函数fun的功能是:用下面的公式求π的近似值,直到最后一项的绝对值小于指定的数为止,π/4=1-1/3+1/5-1/7+...,例如,程序运行后,输入0.0001,程序输出3.1414

#include <math.h> #include <stdio.h> float fun ( float num ) { int s ; float n, t, pi ; t = 1 ; pi = 0 ; n = 1 ; s = 1 ; /**************found**************/ while(fabs(t) >= num) { pi = pi + t ; n = n + 2 ; s = -s ; /**************found****

蔡勒公式求今天是星期几?

之所以知道蔡勒公式,是因为今天在九度上做的一道题目[题目1043:Day of Week].以前也曾经做过求星期几这样的题目,当时的做法比较粗暴:已经知道某年某月某日是星期几,要求现在给的某天是星期几,直接求给的日期和已知日期的相差天数对7取余,再根据已知的星期做相应的调整即可.这样的做法不仅繁琐,而且一不留神就有可能算错.这次又碰到类似的题目,希望尝试新的方法.于是在查资料的过程中,知道了蔡勒公式.于是用蔡勒公式来解决了这道题目,虽然知道蔡勒公式,但是在使用过程中依旧错误不断.其实是因为对蔡勒

c语言经典算法—求0—7 所能组成的奇数个数

题目:求0—7 所能组成的奇数个数. 算法思想:这个问题其实是一个排列组合的问题,设这个数为sun=a1a2a3a4a5a6a7a8,a1-a8表示这个数的某位的数值,当一个数的最后一位为奇数时,那么这个数一定为奇数,不管前面几位是什么数字.如果最后一位数为偶数,则这个数一定为偶数.a1-a8可以取0-7这个八个数字,首位数字不为0.从该数为一位数到该数为8位数开始统计奇数的个数:1.当只有一位数时也就是该数的最后一位,奇数个数为42.当该数为两位数时,奇数个数为4*7=283.当该数为三位数时