由於被除數很大超過了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 ...