精华内容
下载资源
问答
  • 高精度除法

    2020-07-06 12:50:45
    高精度除法 模板(高精度除以低精度 —— 模板题 AcWing 794. 高精度除法) vector<int> div(vector<int> &a,int b,int& r){ vector<int> c; r=0; for(int i=a.size()-1;i>=0;i--){ ...

    大雪菜的课(笔记)

    基础算法(二)

    1.高精度

    (1).高精度除法

    模板(高精度除以低精度 —— 模板题 AcWing 794. 高精度除法)
    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;
     }
    
    AcWing794. 高精度除法

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

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

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

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

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

    #include <iostream>
    #include <algorithm>
    #include <vector>
    using namespace std;
    vector<int> div(vector<int> a,int b,int &r){
    	vector<int> 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<int> 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<<c[i];
    	printf("\n%d",r);
    	return 0;
    }
    
    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,272
精华内容 508
关键字:

高精度除法