計算pi小數點後10000位

2021-08-16 09:36:30 字數 1330 閱讀 4580

部落格已搬家到

資料結構課上,老師讓我們計算一下pi的10000位,複習一下物件導向。

**first try:**定義乙個高精度類hp(high precision),實現加減乘除,輸入輸出,然後隨便找乙個公式,比如wallis公式,全都用hp進行計算。

**現實是:**大數乘大數或者大數除大數,實在是太慢了。而且wallis公式收斂太慢。

second try先找到乙個收斂較快的公司:bbp公式,觀察公式發現,其實只需要定義乙個具有如下特性的高精度類hp即可:整數部分用乙個int表示,小數部分每8位用乙個int儲存,實現hp相加減,hp乘或除int即可。

hp.h

#ifndef hp_h

#define hp_h

#include#include#include#includeusing namespace std;

const int maxp=1250,maxn=2*maxp,base=1e8,width=8; //maxn表示雙精度

class hp

hp(int num)

hp operator=(int num);

hp operator+( const hp&);

hp operator-( const hp&);

hp operator*(const int&);

hp operator/(const int&);

friend ostream& operator<<(ostream &out,const hp&);

};ostream& operator<<(ostream &out,const hp& x)

return c;

}hp hp::operator -(const hp&b)

else

}return c;

}hp hp::operator *(const int &b)

return c;

}hp hp::operator/(const int &b)

c.prec=i-1;

return c;

}#endif

main()

#include "hp.h"

#include#includeusing namespace std;

int main()

cout<<"pi's first "

return 0;

}

小數點後k位

立華奏在學習初中數學的時候遇到了這樣一道大水題 設箱子內有 n 個球,其中給 m 個球打上標記,設一次摸球摸到每乙個球的概率均等,求一次摸球摸到打標記的球的概率 但是她改了一下詢問方式 設最終的答案為 p 請輸出 p 小數點後 k1 到 k2 位的所有數字 若不足則用 0 補齊 第一行乙個整數 t,...

小數點後截位問題

在許多應用程式領域中,都需要控制小數點後的小數字,但是浮點數對此不能提供直接的支援。怎樣對程式中的浮點資料進行 整齊 地格式化呢?在此我們有乙個迂迴的方法,先把它們轉換為字串,格式化後以文字形式顯示出來。在日常程式設計中 包括對話方塊 關聯式資料庫 金融程式 sms程式及一切處理資料檔案的程式,需要...

限制小數點 16 19小數點後200位是多少?

c語言求解精確小數點 題目內容 由於計算機內部表達方式的限制,浮點運算都有精度問題,為了得到高精度的計算結果,就需要自己設計實現方法。0,1 之間的任何浮點數都可以表達為兩個正整數的商,為了表達這樣兩個數的商,可以將相除的結果存放在一維陣列中,陣列的每個元素存放一位十進位制數字。即商的第一位存放在第...