高精度加減乘除模板

2021-08-15 12:04:56 字數 1501 閱讀 3420

#include #include #include using namespace std;

const int power = 1; //每次運算的位數為10的power次方,在這裡定義為了方便程式實現

const int base = 10; //10的power次方。

//要壓位的時候,只需改power 和 base即可,如壓萬位高精,那麼power = 4, base = 10000

const int maxl = 1001; //陣列的長度。

char a[maxl], b[maxl];

struct num

//初始化

num(char *s) //將乙個字串初始化為高精度數

a[t] += w * (s[i]-'0');

}//初始化陣列,這裡自己模擬一下,應該很容易懂的~

}void add(int k) //在末尾新增乙個數,除法的時候要用到

void re() //把數反過來,除法的時候要用到

void print() //列印此高精度數

} p,q,ans;

bool operator < (const num &p, const num &q) //判斷小於關係,除法的時候有用

return false;

}num operator + (const num &p, const num &q) //加法,不用多說了吧,模擬一遍,很容易懂

if (c.a[ c.a[0]+1 ]) ++c.a[0];

return c;

}num operator - (const num &p, const num &q) //減法,也不用多說,模擬一遍,很容易懂

}while (c.a[0] > 0 && !c.a[ c.a[0] ]) --c.a[0];

//我的習慣是如果該數為0,那麼他的長度也是0,方便比較大小和在末尾新增數時的判斷。

return c;

}num operator * (const num &p, const num &q)

//乘法,還是模擬一遍。。其實高精度就是模擬人工四則運算!

if (c.a[ c.a[0]+1 ]) ++c.a[0];

return c;

}num operator / (const num &p, const num &q) //除法,這裡我稍微講解一下

x.a[0] = p.a[0];

while (x.a[0] > 0 && !x.a[x.a[0]]) --x.a[0];

return x;

}int main()

高精度 加減乘除 模板

例題 高精度加法 題目描述 給定兩個正整數,計算它們的和。輸入格式 共兩行,每行包含乙個整數。輸出格式 共一行,包含所求的和。資料範圍 1 整 數長度 100000 1 整數長度 100000 1 整數長度 100 000 輸入樣例 12 23輸出樣例 35c 版本一 include include...

高精度 加減乘除 模板

座位旁邊乙個同學,哼著歌,說著 要用高精度啊,好麻煩,不想寫啊啊啊,不想寫啊,不想寫啊 他的這首歌持續了大約6min,然後他的dev裡乙個漂亮的高精度運算 已經寫好了。看來大公尺餅也不能甘於落後啊,模板來啦 1 include2 include3 include4 define ll long lo...

高精度 模板 高精度整數加 減 乘 除模板

加減 乘除高精度加減乘除模板,可能會在求方案數 求組合數等情況下遇到,c 整形範圍 整型數範圍 int8 128 127 uint8 0 256 int16 32768 32767 uint16 0 65535 int32 2147483648 2147483647 uint32 0 4294967...