码迷,mamicode.com
首页 > 其他好文 > 详细

高精度除法

时间:2021-04-15 12:24:00      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:ack   tom   data   space   names   atom   ever   rev   --   

给定两个非负整数 ABA,B,请你计算 A/BA/B 的商和余数。

输入格式

共两行,第一行包含整数 AA,第二行包含整数 BB。

输出格式

共两行,第一行输出所求的商,第二行输出所求余数。

数据范围

1A1000001≤A的长度≤100000,
1B100001≤B≤10000,
BB 一定不为 00

输入样例:

7
2

输出样例:

3
1

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
vector<int>div(vector<int>&A ,int b,int &r)
{
    vector<int>C;
    r=0;
    for(int i=A.size()-1;i>=0;i--)
    {
        r=r*10+A[i];
        C.push_back(r/b);
        r%=b;
    }
    reverse(C.begin(),C.end());
    while(C.size()>1&&C.back()==0) C.pop_back();
    return C;
}
int main()
{
    string a;
    vector<int> A;
    int B;
    cin>>a>>B;
    for(int i=a.size()-1;i>=0;i--) A.push_back(a[i]-0);
    int r;
    auto C=div(A,B,r);
    for(int i=C.size()-1;i>=0;i--) cout<<C[i];
    cout<<endl<<r<<endl;
    return 0; 
 }

 

高精度除法

标签:ack   tom   data   space   names   atom   ever   rev   --   

原文地址:https://www.cnblogs.com/chen-kaige/p/14659523.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!