ABCDEFGHIJK➗S

我们在计算时会列竖式,我们会先从最高位开始算起,然后算之前余数*10+当前位之后,再除以s,之后一直都是这样

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
string sa;
vector<int> div(vector<int> a,int b,int &r)//a是被除数,b是除数,r是余数
{
    vector<int> c;//商
    for(int i=a.size()-1;i>=0;i--)
    {
    	c.push_back((r*10+a[i])/b);
        r=(r*10+a[i])%b;
    }
    reverse(c.begin(),c.end());//要去掉前导0,所以需要反转
    while(c.size()>1&&c.back()==0)c.pop_back();
    return c;
}
int main()
{
	string sa;
    int b,c=0;
    vector<int> a;
    cin>>sa>>b;
    for(int i=sa.size()-1;i>=0;i--)a.push_back(sa[i]-'0');
    vector<int>ans=div(a,b,c);
    for(int i=ans.size()-1;i>=0;i--)cout<<ans[i];
    cout<<endl<<c<<endl;
    return 0;
}