[C语言]计算圆周率(Pi-X)

Code:

 1 #include <stdio.h>
 2 int main(){
 3     const ARRSIZE=1010, DISPCNT=1000; //定义数组大小,显示位数
 4     //const ARRSIZE=10100, DISPCNT=10000;
 5     char x[ARRSIZE], z[ARRSIZE]; //x[0] x[1] . x[2] x[3] x[4] .... x[ARRSIZE-1]
 6     int a=1, b=3, c, d, Run=1, Cnt=0,i;
 7     for (i=0;i<ARRSIZE;i++){
 8         x[i]=0;z[i]=0;
 9     }
10     //memset(x,0,ARRSIZE);
11     //memset(z,0,ARRSIZE);
12     x[1] = 2;
13     z[1] = 2;
14     while(Run && (++Cnt<200000000)){
15     //z*=a;
16     d = 0;
17     for(i=ARRSIZE-1; i>0; i--)
18     {
19         c = z[i]*a + d;
20         z[i] = c % 10;
21         d = c / 10;
22     }
23     //z/=b;
24     d = 0;
25     for(i=0; i<ARRSIZE; i++){
26         c = z[i]+d*10;
27         z[i] = c / b;
28         d = c % b;
29     }
30     //x+=z;
31     Run = 0;
32     for(i=ARRSIZE-1; i>0; i--){
33         c = x[i] + z[i];
34         x[i] = c%10;
35         x[i-1] += c/10;
36         Run |= z[i];
37     }
38     a++;
39     b+=2;
40     //printf("计算了 %d 次\n",Cnt);
41     }
42     printf("计算了 %d 次\r\n",Cnt);
43     printf("Pi=%d%d.\r\n", x[0],x[1]);
44     for(i=0; i<DISPCNT; i++){
45         if(i && ((i%100)==0))
46         printf("\r\n");
47         printf("%d",(int)x[i+2]);
48     }
49 }
时间: 2024-10-26 08:53:10

[C语言]计算圆周率(Pi-X)的相关文章

C语言计算圆周率PI的代码

下面的内容段是关于C语言计算圆周率PI的内容. #include "stdio.h" #include "stdlib.h" #define SCALE 10000 #define ARRINIT 2000 void pi_digits(int digits) { int carry = 0; int arr[digits + 1]; for (int i = 0; i <= digits; ++i) arr[i] = ARRINIT; for (int i

使用规则引擎Drools计算圆周率PI

实际上是使用规则引擎能够更新工作内存区重新匹配规则实现迭代功能. 使用了策略模式实现. <规则引擎与RETE算法介绍> PPT : http://files.cnblogs.com/lovesqcc/%E8%A7%84%E5%88%99%E5%BC%95%E6%93%8E%E4%B8%8ERETE%E7%AE%97%E6%B3%95.pptx 1.  CalcPI.java package sample; import java.util.ArrayList; import java.util

关于计算圆周率PI的经典程序

短短几行代码,却也可圈可点.如把变量s放在PI表达式中,还有正负值的处理,都堪称经典.尤其是处处考虑执行效率的思想令人敬佩. /* pi/4=1-1/3+1/5-1/7+1/9-…… */ #include <stdio.h> int main(){ int s=1; float pi=0.,n=1.,t=1.; while(t>1e-6) { pi+=s*t; n+=2.; s=-s; t=1./n; } printf("\tPI=%7.6f\n",pi*4); r

【小白成长撸】--多项式求圆周率PI

1 /*程序的版权和版本声明部分: 2 *Copyright(c) 2016,电子科技大学本科生 3 *All rights reserved. 4 *文件名:多项式求PI 5 *程序作用:计算圆周率PI 6 *作者:Amoshen 7 *完成日期:2016.9.28 8 *版本号:V2.0 9 */ 10 11 #include<stdio.h> 12 13 int main(void) 14 { 15 double pi = 0.0,i = 1.0;//pi/4 = 1 - 1/3 + 1

c语言学习之不同方式计算圆周率

 /*************************************************** * 功能: *        通过概率法和切割法计算圆周率 * 说明: *        概率法需要输入圆没的点数 *        切割法需要输入切割的次数 ***************************************************/ #include <stdio.h> #include <time.h> #include <stdl

计算圆周率的C程序

这是很早以前用C语言写的一个计算圆周率的程序,  算法是用泰勒公式计算反正切值.在命令行不跟参数执行该程序则使用Gauss公式计算前1000位圆周率的值,如果带一个命令行参数,则该值为要计算的位数.如果还有第二个命令行参数,则使用Stomer公式计算,可作为验算.因为该程序只涉及到纯数学计算,可以在Linux.Unix.Windows等操作系统下编译并运行.当时写这个程序时,int是2个字节的,现在大多数的C编译器int都是4个字节,不过这不影响程序的正确性. #include <stdio.h

计算圆周率

Digits of Pi: In this problem you have to find as many digits of PI as possible. Output: Output must contain as many digits of PI as possible (not more than 1,000,000). Score: The score awarded to your program will be the first position of the digit

IOS研究之蒙特卡罗法求圆周率π(PI)(

 [摘录自百度百科]蒙特·卡罗方法(Monte Carlo method),也称统计模拟方法,是二十世纪四十年代中期由于科学技术的发展和电子计算机的发明,而被提出的一种以概率统计理论为指导的一类非常重要的数值计算方法.是指使用随机数(或更常见的伪随机数)来解决很多计算问题的方法.与它对应的是确定性算法.蒙特·卡罗方法在金融工程学,宏观经济学,计算物理学(如粒子输运计算.量子热力学计算.空气动力学计算)等领域应用广泛.上章研究了Property List详解需要了解的可以看看. 下面介绍使用蒙

蒙特卡洛方法计算圆周率的三种实现-MPI openmp pthread

蒙特卡洛方法实现计算圆周率的方法比较简单,其思想是假设我们向一个正方形的标靶上随机投掷飞镖,靶心在正中央,标靶的长和宽都是2 英尺.同时假设有一个圆与标靶内切.圆的半径是1英尺,面积是π平方英尺.如果击中点在标靶上是均匀分布的(我们总会击中正方形),那么飞镖击中圆的数量近似满足等式 飞镖落在圆内的次数/飞镖落在标靶内的总次数=π/4 因为环包含的面积与正方形面积的比值是π/4. 因为环所包含的面积与正方形面积的比值是π/4. 我们可以用这个公式和随机数产生器来估计π的值. 伪代码如下: numb