概述
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
//高精度的整数除以低精度的整数
// v1/v2 = res...r
vector<int> div(vector<int>&v1,int &v2,int &r){
vector<int>res;
r=0;
for(int i=v1.size()-1;i>=0;i--){
r=r*10+v1[i];//在数学上相当于余数乘以10再加上后一位作为除数
res.push_back(r/v2);
r%=v2;
}
//存储时应该还按个位数字在res[0]的位置
reverse(res.begin(),res.end());
//去掉前导0
while(res.size()>1&&res.back()==0)res.pop_back();
return res;
}
int main()
{
string s1;
int v2;
vector<int>v1;
cin>>s1>>v2;
for(int i=s1.size()-1;i>=0;i--)v1.push_back(s1[i]-'0');
int r;
auto res=div(v1,v2,r);
for(int i=res.size()-1;i>=0;i--)cout<<res[i];
cout<<endl<<r<<endl;
return 0;
}
有点类似于高精度乘法的计算方法
原题链接794. 高精度除法 - AcWing题库
最后
以上就是烂漫心锁为你收集整理的acwing794.高精度除法的全部内容,希望文章能够帮你解决acwing794.高精度除法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复