演算法學習 大整數運算(高精度)C

2022-07-01 08:00:15 字數 1325 閱讀 2763

1.大整數加法

用陣列來儲存大整數的每一位,然後模擬人工運算,用for迴圈按位運算和處理,原理十分簡單,直接上模板。

#include#include

using

namespace

std;

//大整數加法

vector add(vector& a,vector&b)

if(t) c.push_back(1

);

returnc;}

intmain()

2.大整數減法

#include#include

using

namespace

std;

//判斷a是否大於等於b

bool cmp(vector& a,vector&b)

return1;

}//c = a - b

vector sub(vector& a,vector&b)

else t = 0

; }

while(c.size() > 1 && c.back() == 0

) c.pop_back();

returnc;}

//c = a + b

vector add(vector& a,vector&b)

if(t) c.push_back(1

);

returnc;}

intmain()

else

return0;

}

3.大整數乘法

#include #include 

using

namespace

std;

vector

mul(vector a, vectorb)

while (c.size() > 1 && !c.back()) c.pop_back();

returnc;}

intmain()

4.大整數除法

#include #include 

#include

using

namespace

std;

vector

div(vector &a, int b, int &r)

reverse(c.begin(), c.end());

while (c.size() > 1 && c.back() == 0

) c.pop_back();

returnc;}

intmain()

基礎演算法 高精度 大整數

學習平台 acwing 高精度的數一般比較大,普通的整型變數存不下,所以存在string裡或者char裡 模擬數學的普通加法 len a 10 9 len b 10 9 為了方便地進行進製操作,將大整數的每一位倒著存放在整形陣列int裡 string a,b vectora,b cin a b fo...

經典例題 高精度(大整數)運算

大整數運算 1.藍橋杯 大整數階乘 問題描述 輸入乙個正整數n,輸出n 的值。其中n 1 2 3 n 解決思路 n 非常大,可以使用陣列儲存各位,a 0 表示最低位,初始化為1,然後迴圈,每一位都乘以2 3 n,根據各位大小判斷是否向前進製,最後逆序輸出各位即可 include include us...

高精度 C 中大整數運算

cin a b for i a.size 1 i 0 i for i b.size 1 i 0 i include include using namespace std const int n 1e6 10 10防止出現邊界問題 vector int add vector int a,vector...