從除數最高位開始除以被除數。
取出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 ...