用“易語言.飛揚”計算圓周率π小數點後前800位,作者石章能,含源代碼

計算圓周率π小數點後前800位的“易語言.飛揚”程序源代碼如下,作者石章能,轉換自相應的C代碼:

公開 類 啓動類
{
    公開 靜態 啓動()
    {
        
int a=10000,b, c=2800, d, e;
        
int[] f;
        f
=創建 int[2801];

        
for(;b-c!=0;)
        {
            f[b]
=2000; b++;//控制檯.輸出(f[b]);
        }
        
for(;c!=0;{c-=14;控制檯.輸出((e+d/a).到文本().左邊(4));e=d%a;})
        {
            
for({b=c;d=f[b]*10000;f[b]=d%(b*2-1);d=d/(b*2-1);b--;};b!=0;)
            {
                d
=d*b+f[b]*10000;
                f[b]
=d%(b*2-1);
                d
=d/(b*2-1);
                b
--;
            }
        }

        控制檯.輸出行(
" 請按回車鍵退出程序");
        控制檯.輸入文本();
    }
}

 原始C代碼如下(艱澀很懂,以簡短著稱):

/*某年Obfuscated C Contest佳作選錄:*/ 
#include 
< stdio.h>
long a=10000, b, c=2800, d, e, f[2801], g; 
main(){
for(;b-c;)f[b++]=a/5
for(;d=0,g=c*2;c-=14,printf("%.4d",e+d/a),e=d%a) 
for(b=c;d+=f[b]*a,f[b]=d%--g,d/=g--,--b;d*=b);


/* (本程式可算出pi值連小數點前共800位) 
(本程式錄自sci.math FAQ,原作者未詳)
*/

請參考:http://bbs.dywt.com.cn/dispbbs.asp?boardid=148&id=146779&star=1,其中有比較深入細緻的解釋。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章