首页天道酬勤公式中圆周率怎么打出来,根据公式用scanf求圆周率

公式中圆周率怎么打出来,根据公式用scanf求圆周率

admin 08-16 12:36 180次浏览

激昂的啤酒公式是数学中求近似值的常用方法,利用激昂的啤酒公式展开,可以使许多问题简化,当然也需要多次循环,类似这样的情况,利用编程循环结构就是再好不过的选择了。

题目:计算π=4*(1-1/3+1/5-1/7+······),直到最后一项小于10^16。(也就是1e-6)

解法:

#include<stdio.h>
int main()
{
    double sum=0;
    for(int i=0;;i++)
    {
        double term=1.0/(i*2+1);
        if(i%2==1)
        sum-=term;
        else
        sum+=term;
        if(term<1e-6)break; 
    }
    printf("%.6f\n",sum*4);
    return 0;
}

本例中sum和term都定义为double类型的变量。double类型的变量占8个字节(64位的储存空间),最多提供16位有效数字,小数点后默认保留6位。如果是最终结果是整数,做多提供15位有效数字。break是跳出整个循环结构。对于一些初学者,“%.6f”可能还不知道是什么意思,别着急,听我慢慢讲解。

首先,double和float的比较

float是单精度浮点型,内存占4个字节;double是双精度浮点型,内存占8个字节。double的精度更高。

float的指数范围为-127~128;double的指数范围为-1023~1024。

float只能提供7位有效数字;double可以提供16位有效数字。

float类型的说明符是%f;double类型的说明符是%lf。但是一般情况下%f也是可以输出double的。

第二,读者可以注意到,在这个程序中,出现了“+=”和“-=”的字样。n+=1就相当于n=n+1。理解就可以了。

第三,“%.6f\n"的问题。

          %m.nf   的含义就是输出单精度(或双精度浮点型),并且小数点后输出n位,整个数字(将小数点算作以为)输出为m位。如果有类似m小于n的情况,小数点后仍然输出n位,小数点前结果保持真实值;如果整个小数的真实值还不足m位时,那么整个数字前面用空格填补,使整个部分长度为m。当然也会出现其他情况,读着可以自己在编译器中尝试输入,查看结果。

第四,说明一下1e-6的含义。1e-6是C语言中一种计数形式,1表示尾数,e表示阶码标志,-6表示阶码。它的意思就是10^-6即0.000001,看不明白的先记住就可以了,在以后的学习中你会慢慢理解的。

学习编程语言需要紧密地联系实践,根据编译器的结果调整自己的代码,不管走哪条路,最后得到正确的结果才是王道,不必像学数学和物理一样纠结其深层原理!

当然,这道题还可以使用do-while结构,在以后的文章中会讲到。

小程序在线制作(小程序在线制作网站)é
用下面的求和公式求圆周率的近似值,用下列和式求圆周率的近似值 按照圆周率公式 逐项计算 趋近圆周率
相关内容