knrt.net
当前位置:首页 >> 圆周率的计算(C++ ) >>

圆周率的计算(C++ )

关键是算法,最土的是用一个阶乘和n次方关系的公式(我记不得了,应该在高数书上有),但受数字精确度影响,我当时是用自己的超长整数类型.较好的方法是用一大堆随机数加在一起再除以一个数,我不是搞数学的,不清楚,不过应该是统计方面的一个理论吧

#include float cicir(int );void main(){ float pi; int n,i; printf("input a odd number:"); scanf("%d",&n); pi=4*cicir(n); printf("圆周率:%g\n",pi);}float cicir(int i) { float sum=0; int j,k; for(j=1,k=1;j 评论0 0 0

貌似很麻烦那个,我不懂c++是不是你公式错了lim[1-1/3+1/5-1/7+……] = 圆周率/4java版本:public static void main(string args[]) { double answer = 0; int sign = 1; for (int i = 1; i 评论0 12 0

#include "stdafx.h"#include#includeusing namespace std;int main(){ double item=1,sum=0; for(int i=1;abs(item)>1e-6;++i ){ item*=(-1.0)*(2*i-3)/(2*i-1); sum+=item; } cout#include long int a=10000,b,c=2800,d,e,f[2801],g;int main(){ for(;b-c;) f[b++]=

#include <stdio.h> int main() { double pi = 0; int i, k = 1; for ( i = 0; i < 1000000; ++i ) { pi += 1.0 / (2*i+1)*k; k = -k; } printf( "%f\n", pi*4 ); }

给你写个主要函数吧.主要算法就是这个.int radRa = 1;//分母自加用float quartPi=1;//四分之一πstatic int num=0;//叠加次数bool odd = true;//单数float getPI(float quartPi){ if(odd){ quartPi = (-1)*(quartPi + 1/(radRa+2*num)); num++; return

用pi/4=1-1/3+1/5-1/7+公式求pi的近似值,直到某一项的绝对值小于1e-6为止.程序如下:(c++程序设计)#include#include

fabs(1.0/i)<10e-008改成fabs(1.0/i)>=10e-008你修改for后1/i改成1.0/i

搜一下:c++编程计算圆周率pi=4-4/3+4/5-4/7++4/(4n-3)-4/(4n

#include long a=10000,b=0,c=2800,d,e,f[2801],g; void main() { printf("%d",b); for(;b!=c;) { f[b]=a/5; b++; } for(;d=0,g=c*2 ; c-=14,printf("%.4d",e+d/a),e=d%a) { for(b=c;d+=f[b]*a,f[b]=d % (--g),d/=g--,--b;d*=b); } }

网站首页 | 网站地图
All rights reserved Powered by www.knrt.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com