首页 > 其他 > 详细

10.高精度除法

时间:2020-06-28 20:19:25      阅读:54      评论:0      收藏:0      [点我收藏+]

技术分享图片

 大数除以一个小数

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 //A/b商是C,余数是r 
 4 vector<int> div(vector<int> &A, int b, int &r) {
 5     vector<int> C;
 6     r = 0;
 7     //注意除法是从最高位开始算的 
 8     //前面那仨都是从最低位开始算 
 9     for (int i = A.size() - 1; i >= 0; i--) {
10         r = r * 10 + A[i];
11         C.push_back(r / b);
12         r %= b;
13     }
14     //C[0]是最高位 
15     reverse(C.begin(), C.end());
16     while (C.size() > 1 && C.back() == 0) {
17         C.pop_back();
18     }
19     return C;
20 }
21 int main () {
22     string a;
23     int b;
24     cin >> a >> b;
25     vector<int> A, C;
26     for (int i = a.length() - 1; i >= 0; i--) {
27         A.push_back(a[i] - 0);
28     }
29     int r;
30     C = div(A, b, r);
31     for (int i = C.size() - 1; i >= 0; i--) {
32         cout << C[i];
33     }
34     cout << endl << r << endl;
35     return 0;
36 }

 

10.高精度除法

原文:https://www.cnblogs.com/fx1998/p/12817623.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!