部落格已搬家到
資料結構課上,老師讓我們計算一下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 之間的任何浮點數都可以表達為兩個正整數的商,為了表達這樣兩個數的商,可以將相除的結果存放在一維陣列中,陣列的每個元素存放一位十進位制數字。即商的第一位存放在第...