其他分享
首页 > 其他分享> > 大数相除求商和余数(高精度除法)

大数相除求商和余数(高精度除法)

作者:互联网

满足所有数据为正整数,第二个数据在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