📄 main.cpp
字号:
#include <iostream.h>
#include <iomanip.h>
#include <fstream.h>
#include <time.h>
#include "bignumber.h"
main()
{
int n;
cout<<"输入所需精度!";
cin>>n;
clock_t p=clock();
int m=n/9+3;
__int64 *a=new __int64[m];
__int64 *b=new __int64[m];
int i,j,t=0;
for(i=0;i<m;i++){
a[i]=b[i]=0;
}
a[m-1]=b[m-1]=2;
for (i=1;;i++){
multiply(b,i,m);
divide(b,2*i+1,m);
plus(a,b,m);
t=0;
for (j=0;j<m;j++)
if (b[j]!=0){
t=1;
break;
}
if(t==0)break;
}
if (2*i+1>=1000000000)cerr<<"计算超出范围,数值可能不准确";
ofstream file;
file.open("1.txt");
double q=(clock()-p)/(double)CLOCKS_PER_SEC;
cout<<"运算时间:"<<q<<"秒"<<endl;
file<<"运算时间:"<<q<<"秒"<<endl;
cout<<"运算步数:"<<i<<endl;
file<<"运算步数:"<<i<<endl;
cout<<(long)a[m-1]<<'.';
file<<(long)a[m-1]<<'.';
for (i=m-2;i>=2;i--){
cout<<setw(9)<<setfill('0')<<(long)a[i]<<' ';
file<<setw(9)<<setfill('0')<<(long)a[i]<<' ';
}
cout<<endl;
file<<endl;
file.close ();
return 0;
}
/*void f(long *a,long *b,int k,int a1)
{
long *c=new long[a1];
long *d=new long[a1];//4
int i;
for (i=0;i<=a1-1;i++){
b[i]=0;
c[i]=0;
d[i]=0;
}
b[0]=1;
c[0]=4;
for (i=0;i<k;i++)
multiply(b,c,a1);
multiply(a,a,a1);
plus(a,b,a1);
d[a1/2]=1;
multiply(b,d,a1);
divide(b,a,a1);
delete c;
delete d;
}
main()
{
int n;
cout<<"输入pi位数";
cin>>n;
int m=n/4+1;
long *a=new long [2*m];
long *b=new long [2*m];
long *c=new long [2*m];
long *d=new long [2*m];
long *e=new long [2*m];
long *aa=new long [2*m];
int i;
for (i=0;i<=2*m-1;i++)
a[i]=0;
for (i=0;i<=2*m-1;i++){
c[i]=0;
d[i]=0;
e[i]=0;
aa[i]=0;
}
e[0]=2;
f(a,b,0,2*m);
divide(b,e,2*m);
plus(c,b,2*m);
a[0]=1;
f(a,b,0,2*m);
divide(b,e,2*m);
plus(c,b,2*m);
int k=10;
d[0]=1;
for (i=0;i<k;i++)
multiply(d,e,2*m);
aa[0]=e[0]=a[0]=1;
while (minus(a,d,2*m)==1){
for(i=0;i<=2*m-1;i++)
a[i]=aa[i];
f(a,b,k,2*m);
plus(c,b,2*m);
plus(aa,e,2*m);
for(i=0;i<=2*m-1;i++)
a[i]=aa[i];
}
e[0]=4;
divide(c,d,2*m);
multiply(c,e,2*m);
for (i=m-1;i>=0;i--)
cout<<c[i];
return 0;
}
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -