高精度演算法 大數除法

2021-10-05 02:52:47 字數 1008 閱讀 2514

由於被除數很大超過了longlong或者unsigned longlong,就需要使用大數除法。

給定兩個正整數a,b,請你計算 a / b的商和餘數。

輸入格式

共兩行,第一行包含整數a,第二行包含整數b。

輸出格式

共兩行,第一行輸出所求的商,第二行輸出所求餘數。

資料範圍

1≤a的長度≤100000

1≤b≤10000

b一定不為0

輸入樣例:72

輸出樣例:31

演算法思路:先用字串把數存起來,然後把每乙個數字存到陣列中,用陣列模擬除法進行運算

#include

using

namespace std;

typedef

long

long ll;

namespace io

while

(c>=

'0'&&c<=

'9')

return o*f;}}

using

namespace io;

const

int n=

1e5+

7,base=

1e9;

vector<

int>

div(vector<

int>a,

int b,

int&r)

reverse

(res.

begin()

,res.

end())

;//因為高位在前,轉換以下方便剔除前導0

while

(res.

size()

>

1&&res.

back()

==0)res.

pop_back()

;//剔除前導0

return res;

}int

main()

高精度除法 大數除法

問題描述 給出兩個正整數,計算a b的值,保證a和b的位數不超過500位。輸入描述 輸入兩個用空格隔開的正整數。輸出描述 輸出a b的值。樣例輸入 500 2 樣例輸出 250 解題思路 大數除法的實現有兩種方式 1 用a b,迴圈,直到a 計算過程 擴充套件b的位數 a.length b.lent...

高精度之大數除法

大數除法說的比較少或許不像加法減法那樣簡單,或許是用的不太多。到底怎麼我也不知道。反正你會了加法減法,乘法而不會除法,就像是,開啟電腦而不玩遊戲,心裡難受。我是從看到了大神部落格後學習了一下。部落格中講的很詳細 讓人一看就懂,我很佩服這位同學。果斷的關注了。畢竟別人寫的是別人的。自己寫的才是自己的 ...

高精度計算(大數乘除法)

在高精度加減運算的基礎上實現,進行高精度數的乘法運算,首先要確定積的位數,設兩個數為,a,b la為a 的位數,lb為b的位數,兩個的乘積最少位數為la lb 1 若乘後,的這個最小位上有進製,則乘積位數變為la lb 進行高精度 的乘法時,需要計算被乘數與乘數的每位數字的乘積,其中a i b j ...