流云飞飞

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::
    const int ARRSIZE=1010, DISPCNT=1000;   //定义数组大小,显示位数    
    char x[ARRSIZE], z[ARRSIZE];        //x[0] x[1] . x[2] x[3] x[4] .... x[ARRSIZE-1]    
    int a=1, b=3, c, d, Run=1, Cnt=0;    
    memset(x,0,ARRSIZE);    
    memset(z,0,ARRSIZE);    
    x[1] = 2;    
    z[1] = 2;   
    while(Run && (++Cnt<200000000))    
    {        
        //z*=a;        
        d = 0;        
        for(int i=ARRSIZE-1; i>0; i--)        
        {            
            c = z[i]*a + d;            
            z[i] = c % 10;            
            d = c / 10;        
        }        
        //z/=b;        
        d = 0;        
        for(int i=0; i<ARRSIZE; i++)        
        {            
            c = z[i]+d*10;            
            z[i] = c / b;            
            d = c % b;        
        }        
        //x+=z;        
        Run = 0;        
        for(int i=ARRSIZE-1; i>0; i--)        
        {            
            c = x[i] + z[i];            
            x[i] = c%10;            
            x[i-1] += c/10;            
            Run |= z[i];        
        }        
        a++;        
        b+=2;    
    }    
    printf( "Pi=%d.", x[1] );    
    for(int i=0; i<DISPCNT; i++)        
        printf( "%d", (int)x[i+2] );    

 

posted on 2013-05-17 14:02  流云飞飞  阅读(801)  评论(0)    收藏  举报