天天看點

7-15 計算圓周率 (15 分)

這題沒啥好寫的,惡心的是結果還要乘以2,試了半天原來是這地方出錯,蛋疼…

7-15 計算圓周率 (15 分)
#include<stdio.h>
double fact(int a){
	double ret=1.0,sum=0;
	for(int i=1;i<=a;i++){
		ret*=i;
	}
	return ret;
}
double fact1(int b){
	double ret=1.0,sum=0;
	for(int i=1;i<=b;i=i+2){
		ret*=i;
	}
	return ret;
}
int main()
{
	double fenzi=0,fenmu=1;
	double fenzi1,fenmu2;
	double last=1;
	float sum=0.0,sum1;
	double threshold;
	scanf("%lf",&threshold);
	do{
		fenzi1=fact(fenzi);
		fenmu2=fact1(fenmu);
		last=fenzi1/fenmu2*1.0;
		sum1=sum;
		sum+=last;
		fenzi++;
		fenmu=fenmu+2;
	}while(last>threshold);
	printf("%.6f",sum*2);
	return 0;
} 
           

寫的有點亂,主要被乘2搞心态了…随便看看。