我是靠谱客的博主 烂漫心锁,最近开发中收集的这篇文章主要介绍acwing794.高精度除法,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

#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.高精度除法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(70)

评论列表共有 0 条评论

立即
投稿
返回
顶部