⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pi.cpp

📁 求取任意精度pi值
💻 CPP
字号:
#include<math.h>
#include<stdio.h>
#include<stdlib.h>

main()
{
	float s;
	int b,x,n,c,i,j,d,l,a[5000];

	printf("*************** WELCOME **************\n\n");
	printf("This programme is for calculating pi.\n\n");
	printf("请输入想要达到的精确位数\n");
	scanf("%d",&x);
	
	for(s=0,n=1;n<=5000;n++)
	{
		s=s+log((2*n+1)/n);
		if(s/log(10)>x) 
			break;
	}
	
	//initialize the array for Pi
	for(i=0;i<=x+1;i++) 
		a[i]=0;
	
	//caculate the value of Pi
	for(c=1,j=n;j>=1;j--)
	{
		d=2*j+1;
		for(i=0;i<=x;i++)
		{
			a[i]=c/d;
			c=(c%d)*10+a[i+1];
		}
		
		a[x+1]=c/d;
		for(b=0,i=x+1;i>=0;i--)
		{
			a[i]=a[i]*j+b;
			b=a[i]/10;
			a[i]=a[i]%10;
		}
	
		a[0]=a[0]+1;
		c=a[0];

	}
	
	for(b=0,i=x+1;i>=0;i--)
	{
		a[i]=a[i]*2+b;
		b=a[i]/10;
		a[i]=a[i]%10;
	}
	
	//print the value of Pi
	printf("pi=\n%d.",a[0]);
	for(l=10,i=1;i<=x;i++)
	{
		printf("%d",a[i]);
		l++;
		if(l%10==0)
			printf(" ");
		if(l%50==0)
			printf("\n");
	} 

	printf("\n");
	return 0;
}
   

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -