基礎演算法 高精度除法

2021-10-02 12:04:46 字數 800 閱讀 1697

從除數最高位開始除以被除數。

取出r/b高位,得到商,以及r%b低位,用r來存進製。

最後得到的結果是逆序的,所以需要反轉,然後去除前導。

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

輸入格式

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

輸出格式

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

資料範圍

1≤a的長度≤1000001≤a的長度≤100000,

1≤b≤100001≤b≤10000

輸入樣例:

7

2

輸出樣例:

3

1

#include #include #include using namespace std;

//核心思想:1、從除數最高位開始除以被除數。

//3、取出r/b高位,得到商,以及r%b低位,用r來存進製。

//4、最後得到的結果是逆序的,所以需要反轉,然後去除前導。

vectordiv(vector&a, int b, int &r)//r是引用

//得到的c是逆序的,所以需要反轉

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

//去除前導如果最高位是0則去除

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

return c;

}int main()

Acwing演算法基礎 2 4 高精度除法

給定兩個非負整數a,b,請你計算 a b的商和餘數。輸入格式 共兩行,第一行包含整數a,第二行包含整數b。輸出格式 共兩行,第一行輸出所求的商,第二行輸出所求餘數。資料範圍 1 a的長度 100000,1 b 10000 b 一定不為0 輸入樣例 72 輸出樣例 31 a b,商是 c 餘數是 r ...

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

先貼乙個簡單的高精度除以單精度的 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 ...

高精度演算法 大數除法

由於被除數很大超過了longlong或者unsigned longlong,就需要使用大數除法。給定兩個正整數a,b,請你計算 a b的商和餘數。輸入格式 共兩行,第一行包含整數a,第二行包含整數b。輸出格式 共兩行,第一行輸出所求的商,第二行輸出所求餘數。資料範圍 1 a的長度 100000 1 ...