高精度(從簡版)

2021-08-10 12:03:53 字數 1114 閱讀 3397

高精度想必大家再熟悉不過了,這裡我就不再贅述它的原理(模擬),但大部分同學的高精度用得都太零散了,蒟蒻我就將常用的運算符號用struct封裝一下,請大佬們笑納。

code

#includeusing namespace std;

#define rep(i,f,t) for(int i=(f),i##_end_=(t);i<=i##_end_;++i)

#define srep(i,f,t) for(int i=(f),i##_end_=(t);i=i##_end_;--i)

#define ll long long

templateinline bool chkmin(t&x,t y)

templateinline bool chkmax(t&x,t y)

#define l 1000

#define p 10000

struct big

void rd() }

void pr() }

big operator+(const big a)const

if(b.num[b.len])b.len++;

return b; }

big operator+(int a)

if(b.num[b.len])b.len++;

return b; }

big operator*(const big &a)const

} while(b.num[b.len])b.len++;

return b; }

big operator-(const big &a)const

while(b.len>1 and !b.num[b.len-1])b.len--;

return b; }

bool operator<(const big &a)const

bool operator==(const big &a)const

bool operator>=(const big &a)const

bool operator<=(const big &a)const{

if(len!=a.len) return len小結:

高精度的用處還是很大的吧…

高精度階乘(遞迴版)

這是遞迴版的高精度階乘 include include using namespace std int a 5000000000 int sum 0,n,len 1 void e j len 1 while c j len j if sum n e int main a 1 1 e return 0...

高精度除法(高精度除以高精度)

先貼乙個簡單的高精度除以單精度的 include include include using namespace std int main else ys ys 10 a i 0 while c i 0 i for int j i j 0 j printf d c j if ys printf d ...

高精度除高精度

演算法流程 第一步,讀入被除數 a 和 除數 b,判斷是否 a b,是則輸出 0 並結束演算法,否則令 answer 0 第二步,令餘數 remainder 0,令 i 從被除數最高位的下標開始 第三步,令 remainder remainder 10 a i 令 c 9 第四步,判斷是否 b c ...