這裡面的class bign
就是高精的類,裡面有很多過載運算子,還有各種運算函式等等,很全。
一共200來行,可以把它寫成乙個標頭檔案,或者塞進你自己的**裡。不用的可以刪掉,提高速度。
#define max_l 666666 //最大長度,可以修改
class bign ;
#define max(a, b) a > b ? a : b
#define min(a, b) a < b ? a : b
bign::bign()
bign::bign(const char *num)
bign::bign(int num)
string bign::tostr() const
istream &operator>>(istream &in, bign &num)
ostream &operator<<(ostream &out, bign &num)
bign bign::operator=(const char *num)
bign bign::operator=(int num)
bign bign::operator=(const string num)
bool bign::operator<(const bign &num) const
bool bign::operator>(const bign &num) const
bool bign::operator<=(const bign &num) const
bool bign::operator>=(const bign &num) const
bool bign::operator!=(const bign &num) const
bool bign::operator==(const bign &num) const
bign bign::operator+(const bign &num) const
bign result;
result.len = 0;
int temp = 0;
for (int i = 0; temp || i < (max(len, num.len)); i++)
result.sign = sign;
return result;
}bign bign::operator++()
bign bign::operator++(int)
bign bign::operator+=(const bign &num)
bign bign::operator-(const bign &num) const
if (!b.sign)
if (!a.sign)
if (a < b)
bign result;
result.len = 0;
for (int i = 0, g = 0; i < a.len; i++)
result.s[result.len++] = x;
}result.clean();
return result;
}bign bign::operator*(const bign &num) const
result.clean();
result.sign = !(sign ^ num.sign);
return result;
}bign bign::operator*(const int num) const
bign bign::operator*=(const bign &num)
bign bign::operator/(const bign &num) const
bign divisor = *this, divid = num;
divisor.sign = divid.sign = 1;
int k = ans.len - 1;
int j = len - 1;
while (k >= 0)
int key = 0;
while (divid * key <= dividend) key++;
key--;
ans.s[k] = key;
bign temp = divid * key;
for (int i = 0; i < k; i++) temp = temp * 10;
divisor = divisor - temp;
k--;
}ans.clean();
ans.sign = !(sign ^ num.sign);
return ans;
}bign bign::operator/=(const bign &num)
bign bign::operator%(const bign &num) const
bign bign::pow(const bign &num) const
bign bign::factorial() const
void bign::clean()
bign bign::sqrt() const
return l;
}bign::~bign() {}
inline bign quickmi(ll xx, ll n)
return res;
}
React 現代化測試
測試用例的書寫是乙個風險驅動的行為,每當收到 bug 報告時,先寫乙個單元測試來暴露這個 bug,在日後的 提交中,若該測試用例是通過的,開發者就能更為自信地確保程式不會再次出現此 bug。測試的動機是有效地提高開發者的自信心。前端測試中有兩種模型,金字塔模型與獎盃模型。金字塔模型摘自 martin...
應用程式現代化
本篇文章版權由 ecf和 hp所有 john dodge,ecf社群經理 應用程式現代化是大多數cio頭腦中最關注的,但實施的節奏及其優先性取決於幾個不同的因素。換言之,應用程式現代化很重要,但根據三位cio 他們同時也是enterprise cio forum ecf council 成員 的看法...
Neditor 基於Ueditor的現代化編輯器
neditor 是我們團隊基於 ueditor 的一款富文字編輯器。不論從功能還是從其它各方面來講,ueditor 都是一款無以替代的編輯器產品。只是已經不符合現代化樣式的需求,於是我們修改它的樣式,實現了這樣的效果 demo 或從原始碼編譯 git clone 倉庫位址 npm install g...