高精度除法

大雪菜的课(笔记)

基础算法(二)

1.高精度

(1).高精度除法

模板(高精度除以低精度 —— 模板题 AcWing 794. 高精度除法)
vector div(vector &a,int b,int& r){
	vector 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;
 }
AcWing794. 高精度除法

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

输入格式
共两行,第一行包含整数A,第二行包含整数B。

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

数据范围
1≤A的长度≤100000,
1≤B≤10000
B 一定不为0

输入样例:
7
2
输出样例:
3
1

#include 
#include 
#include 
using namespace std;
vector div(vector a,int b,int &r){
	vector c;
	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 s;
	int b,r=0;
	cin>>s>>b;
	vector a;
	for(int i=s.size()-1;i>=0;i--)
		a.push_back(s[i]-'0');
	auto c=div(a,b,r);
	for(int i=c.size()-1;i>=0;i--)
		cout<

你可能感兴趣的:(算法基础·基础算法·高精度)