大数相除求商和余数(高精度除法)
作者:互联网
满足所有数据为正整数,第二个数据在int范围并且比第一个数字小
需要知识点:vector
代码:
#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=r%b;
}
reverse(c.begin(),c.end());// 把数据顺序反过来
while(c.size()>1&&c.back()==0)c.pop_back();// 去前面的零
return c;
}
int main()
{
int b;
string A;
vector<int> a;
cin>>A>>b;
for(int i=A.size()-1; i>=0; i--)
a.push_back(A[i]-'0');
int r; //余数
vector<int> c=div(a,b,r);
for(int i=c.size()-1; i>=0; i--)
cout<<c[i];
cout<<endl<<r;
return 0;
}
标签:求商,int,back,相除,--,vector,余数,include,size 来源: https://blog.csdn.net/weixin_66182206/article/details/122494494