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

📄 pispigot.cpp

📁 任意精度求pi,对内存基本没有要求
💻 CPP
字号:
#include <iostream.h>

#define N 1000
#define LEN (10*N)/3

main()
{
    int a[LEN+1];
    int nines=0;    //use as a queue, which is composed by '9's
    int preDigit=0;
    int i,j,k,q,x;

    for(j=1;j<=LEN;j++) a[j]=2;
    for(j=1;j<=N;j++)
    {
        q=0;
        for(i=LEN;i>0;i--)
        {
            x=10*a[i]+q*i;
            q=x/(2*i-1);
            a[i]=x-q*(2*i-1);
        }
        a[1]=q%10;
        q=q/10;
        
        if(q==9) nines++;
        else if(q==10)
        {
            cout<<(preDigit+1);
            for(k=0;k<nines;k++) cout<<'0';
            preDigit=0;
            nines=0;
        }
        else
        {
            cout<<preDigit;
            preDigit=q;
            if(nines!=0)
            {
                for(k=0;k<nines;k++)
                    cout<<'9';
                nines=0;
            }                   
        }
    }
    cout<<preDigit;

    return 0;
}

⌨️ 快捷键说明

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