
打開網(wǎng)易新聞 查看精彩圖片
圓周率的計算算法一直以來都被用于測試計算機的性能還有編程技能。這是某個不知名的大神寫的一個程序,僅僅幾行代碼瞬間計算出圓周率小數(shù)點后800位。(頭條代碼不能縮進,所以還是用 ---- 代替縮進)

打開網(wǎng)易新聞 查看精彩圖片
#include
#include
int a=10000, b, c=2800, d, e, f[2801], g;
int main() {
----for(;b-c;)
--------f[b++]=a/5;
----for(;d=0,g=c*2;c-=14,printf("%.4d",e+d/a),e=d%a,Sleep(80))
--------for(b=c;d+=f[b]*a,f[b]=d%--g,d/=g--,--b;d*=b);
----return 0;
}
我是看不懂這個代碼,網(wǎng)上有對其的分析:
1.使用的是這個公式
pi = 2 + 1/3 * (2 + 2/5 * (2 + 3/7 * (2 + ... (2 + k/2k+1 * (2 + ... ))...)))
(允許我懵逼3秒鐘)
2.要想精確計算出PI,就需要將上面那個公式迭代無數(shù)次,并且要保證每個分?jǐn)?shù)都是精確的,C語言是不能實現(xiàn)了,畢竟double型有精度限制。這里只能迭代有限的次數(shù),保證讓每個分?jǐn)?shù)都精確。這里就只迭代了2800次(c=2800)。
3.輸出的時候也是每4位一起輸出,共輸出了200段。

打開網(wǎng)易新聞 查看精彩圖片
熱門跟貼