题目1) 利用公式①计求π的近似值,要求累加到最后一项小于10^(-6)为止。

题目2) 根据公式②,用前100项之积计算π的值。

题目1)提供了一种解法,题目2)提供了两种解法,请看解析。

题目1)的代码:#include #include #include int main(){ float s=1; float pi=0; float i=1.0; float n=1.0; while(fabs(i)>=1e-6){ pi+=i; n=n+2; // 这里设计的很巧妙,每次正负号都不一样 s=-s; i=s/n; } pi=4*pi; printf("pi的值为:%.6fn",pi); return 0; }

运行结果:pi的值为:3.141594

上面的代码,先计算π/4的值,然后再乘以4,s=-s; 用的很巧妙,每次循环,取反,结果就是,这次是正号,下次就是负号,以此类推。

题目2)的代码[代码一]:#include #include int main(){ float pi=1; float n=1; int j; for(j=1;j<=100;j++,n++){ if(j%2==0){ pi*=(n/(n+1)); }else{ pi*=((n+1)/n); } } pi=2*pi; printf("pi的值为:%.7fn",pi); return 0; }

运行结果:pi的值为:3.1260781

此算法的主要思想:

观察分子数列:

a1=2  a2=2

a3=4  a4=4

a5=6  a6=6

……

由此得知,当n为偶数时,an=n;当n为奇数时,an=a(n+1)=n+1;

同理观察分子数列:

b1=1 b2=3

b3=3 b4=5

b5=5 b6=7

b7=7 b8=9…….

由此可知,当n为奇数时,bn=n,当n为偶数时,bn=b(n+1)。

综上可知,当n为奇数时,每次应乘以(n+1)/n。当n为偶数时,每次应乘以n/(n+1)。

题目2)的代码[代码二]:#include #include int main(){ float term,result=1; int n; for(n=2;n<=100;n+=2){ term=(float)(n*n)/((n-1)*(n+1)); result*=term; } printf("pi的值为:%fn", 2*result); return 0; }

运行结果:pi的值为:3.126079

算法思想:采用累乘积算法,累乘项为term=n*n/((n-1)*(n+1)); n=2,4,6,…100。步长为2。原文始发于:C语言求圆周率π(三种方法)

c语言程序π,C语言求圆周率π(三种方法)相关推荐

  1. Java | Java语言在Eclipse控制台输入的三种方法

    写在前面的内容,java控制台输入浅尝辄止即可 >>> 文章目录 三种方法比较一览图 方法一:in/out public static final InputStream in//静 ...

  2. C语言中调用数组元素的三种方法:下标法、数组名法、指针法

    /*调用数组元素的三种方法:下标法.数组名法.指针法*/ #include<stdio.h> int main() {int a[] = { 1,2,3,4,5 }, i, * p;pri ...

  3. 微信小程序使用自定义字体的三种方法

    一.loadFontFace接口 小程序官方提供的接口,最便捷的加载字体的方法,不过限制颇多.必须https且同源,canvas等原生组件不支持.注意!!使用本地文件无效,必须使用网络地址. 官方文档 ...

  4. 【C语言】求最小公倍数三种方法

    第一种 在两个数中确定一个较大值赋值给整形变量m,变量m分别对a.b求余数,如果都被整除则m为a.b的最小公倍数,否则将m+1后赋给m,一直循环下去. #include<stdio.h> ...

  5. 易语言运行执行exe文件的三种方法

    易语言一个很初级的问题 ,如何运行exe文件,可以进行游戏的一键启动,软件的一键启动,方便控制操作. 1.和程序同目录 如果你要运行和你程序同目录下的 "****.exe",就用下 ...

  6. C语言特殊图案之菱形的三种方法---今日笔记

    小小白第一次写CSDN的博客啦! 第一次写正式的博客,大家凑合看吧,有什么问题可以留言哦. 题目:输出一个如下菱形图 方法一 ,利用循环控制输出. 解题思路:计算出每行包括7个字符,其中有的是空白字符 ...

  7. 求多项式解(三种方法MATLAB)

    function ex()N = 1000000;a = 1:N;x = 1;ticp1 =sum(a.*x.^[N-1:-1:0]);p1, toc % 直接计算 方法一tic, p2 = a(1) ...

  8. 微信小程序更新webview页面的三种方法

    场景 在小程序其它页面做了操作,数据发生改变,回到webview页面时需要更新webview里面的数据.由于小程序没有提供与webview的实时通信能力,因此刷新页面是个可考虑的做法. 方法一 最常见 ...

  9. 随机投点法计算定积分java_科学网—0026:蒙特卡洛求定积分三种方法的理解 - 何成文的博文...

    蒙特卡洛主要思想就是采用粒子(大多是均匀分布生成的随机数,称为粒子)将积分符号转化为求和,从而实现快速求解目的.定积分求解主要有三种方法:随机投点法.平均值法.重要抽样法: 问题描述:如何求exp(x ...

最新文章

  1. NC:电缆细菌减少水稻种植土壤中的甲烷排放
  2. 神经网络的梯度消失和过拟合产生原因及其解决方案
  3. linux server文件,linux两台server远程copy文件
  4. BZOJ3139/BZOJ1306 HNOI2013比赛/CQOI2009循环赛(搜索)
  5. 254. Factor Combinations
  6. 【最优解法】1054 求平均值 (20分)_31行代码AC
  7. 辨别光纤收发器优劣的方法介绍
  8. 后台导出大量数据超时报 nginx404错误
  9. 新玩法来了,web前端教程公众号推出《每日一题》
  10. 接口文档要写在概要设计里吗_写代码的五个步骤,你会几个?
  11. SQL中的全文检索(转帖)
  12. 将字符串转换成System.Drawing.Color类型
  13. android design support library最新版,总结一下现在关于Design Support Library的几个博客...
  14. ReentrantLock中的公平锁与非公平锁
  15. 【IoT】创业指南:智能硬件产品原型设计指南
  16. 免费下载百度文库文档
  17. 计算机 管理 mmc 注册表,win10注册表编辑器没有mmc怎么办_win10恢复注册表mmc文件夹的方法-win7之家...
  18. 【计算机网络四】网络层
  19. 阿里云ECS服务器安装Nginx
  20. python基础-模仿醉汉在二维空间上的随机漫步

热门文章

  1. Destoon7.0会员中心模板 B2B系统商务中心模板源码下载
  2. ppt复现CVPR顶会流程图
  3. opencv 图像去噪学习总结
  4. 同样的程序每次运行的时间不一样
  5. python爬虫爬取的数据与浏览器获取的数据不一样 爬虫爬取到的数据一直不变
  6. mysql list database_Navicat Premium 操作MySQL数据库
  7. 常见浏览器及其内核(国际)
  8. java - day13 - UnionPay
  9. 苹果无线耳机连接不上_苹果AirPods Pro鉴别真伪最简单有效的方法
  10. Dream it possible-我的2016