#include "stdio.h"
#include <stdlib.h>
#include <string.h>
int main(int argc,char *argv[]){
int a,b,c,d,e,f[2801],g,i,n;
char pi[801]="",t[5]="";
for(a=10000,b=0,c=2800;b-c;f[b++]=2000);//a/5
for(i=e=0;d=0,g=c*2;c-=14,e=d%a){
for(b=c;d+=f[b]*a,f[b]=d%--g,d/=g--,--b;d*=b);
n=e+d/a,t[0]=t[1]=t[2]=t[3]='\0';
n<10 ? t[0]=t[1]=t[2]='0',i=3 : n<100 ? t[0]=t[1]='0',i=2 : n<1000 ? t[0]='0',i=1 : i=0;
itoa(n,t+i,10);
strcat(pi,t);
}
printf("Please enter the length n(int 0<n<800)...\nn=");
if(scanf("%d",&n)!=1 || n<1 || n>800){
printf("Input error, exit...\n");
return 0;
}
for(i=0;i<n;printf("%c",pi[i++]));
printf("\n");
return 0;
}
代码格式和运行样例图片:
追问最多是800位,是吗
追答是的,800位。要随意多也可以,麻烦点,要重写。
追问那能不能给我写一个位数随意多的,多谢了!
追答试试看……
抽个时间试试看……
用C语言编一个计算圆周率的程序,用户输入指定位数,并计算到指定位数(精 ...
int main(int argc,char *argv[]){ int a,b,c,d,e,f[2801],g,i,n;char pi[801]="",t[5]="";for(a=10000,b=0,c=2800;b-c;f[b++]=2000);\/\/a\/5 for(i=e=0;d=0,g=c*2;c-=14,e=d%a){ for(b=c;d+=f[b]*a,f[b]=d%--g,d\/=g--,--b;d*=b);n...
用C语言写出计算圆周率的程序
double pi = 0;\/\/圆周率 double d=200;\/\/直径(值越大圆周率越精确)double r = d\/2;\/\/半径 for(int i=1;i<=d;i++){ for(int j=1;j<=d;j++){ if((i-r)*(i-r)+(j-r)*(j-r)<=r*r){ s++;} } } pi = s\/(r*r);...
用C语言编写一个求圆周率的程序
楼上的那个 i<400这个400改成更大的数精确度会高点,还有printf后改成%.50lf\\n可以算到小数点后50位,这个50也是可以改的。外加一句,一般电脑很难算到50位
用C语言编程求圆周率,要求用命令行实现,计算到小数点后2000位
int d,i,j,k,p,q;d=(argc>1)?(((i = atoi(argv[1]))<0)?0:i):1000;q=(argc>2)?1:0;printf("%s\\n\\n", "Nature (R) Pi value compute Program (C) Tue 2005.11.10");printf("pi= %s%d * arctg(1\/%d) %s %d * arctg(1\/%d) %s %d * arctg(1\/%d) [%s]\\n"...
C语言编程计算圆周率π到小数点后五位
int main(){ float pi=0.0f;int i=0;do { pi+=1.0\/(i*2+1)*(i%2?1:-1);i++;}while(1.0\/i>0.00001);pi*=4;printf("pi=%0.5f",pi);} 2.include "stdio.h"int main(){ double pi=1.0;int i=1;do { pi*=2.0*i\/(2*i-1)*2.0*i\/(2*i+1);i++;}...
C语言:计算圆周率(精度保留到小数点后6位),用程序实现,公式如下:
include<stdio.h> include<math.h> int main(){double pi=1,t=0;for(;t<1.9999999;){t=sqrt(2+t);pi*=2\/t;} printf("%lf\\n",pi*2);return 0;}
求一个圆周率C语言程序
for(b=c;d+=f[b]*a,f[b]=d%--g,d\/=g--,--b;d*=b);} 网上广为流传的求圆周率的代码,能求800位。它能求的更精确吗?改哪几个变量?这是近似算法还是一种求派的精确算法?我看不明白,谁能解释一下?参考资料:http:\/\/zhidao.baidu.com\/question\/47106674.html ...
求一个用c语言算圆周率的程序
long a=10000,b,c=2800,d,e,f[2801],g;void main(){ for(;b-c;) f[b++]=a\/5;for(;d=0,g=c*2;c-=14,printf("%04d",e+d\/a),e=d%a)for(b=c;d+=f[b]*a,f[b]=d%--g,d\/=g--,--b;d*=b);} 这个问题我问过。能算800位,我给的网址是我问的,回答里有...
计算圆周率的C语言程序
\/\/ L 为位数,N是array长度 \/*圆周率后的小数位数是无止境的,如何使用电脑来计算这无止境的小数是一些数学家与程式设计师所感兴趣的,在这边介绍一个公式配合 大数运算,可以计算指定位数的圆周率。John Wallis的圆周率公式:\/\/详细看网站介绍:https:\/\/baike.baidu.com\/item\/%E5%9C%86%E5%91%A8...
计算圆周率(精度保留到小数点后6位),用c语言实现,公式如下:
include<stdio.h>int main(){ double sum=0; int i,n; scanf("%d",&n); for(i=1;i<=n;i++) { sum=sum+1\/(double)(4*i-3)-1\/(double)(4*i-1);\/\/要转换为浮点型的 } printf("%.6lf\\n",sum*4); return 0;} ...