高精度高精度数除以低精度数I

Posted rhythm-

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了高精度高精度数除以低精度数I相关的知识,希望对你有一定的参考价值。

问题 G: 【高精度】高精度数除以低精度数I

时间限制: 1 Sec  内存限制: 512 MB
提交: 173  解决: 71
[提交] [状态] [讨论版] [命题人:]

题目描述

修罗王聚集了庞大的暗元素以施展隐匿魔法,该魔法施展后将对其周边的时空产生隐匿效果,当然,隐匿的效果好坏取决于是否将暗元素平均地分配在其周边时空,显然这涉及高精度除法的编程。考虑到邪狼的理解能力,修罗王不得不先将问题简化为:输入一被除数(位数≤5000),输入一除数(整型数据范围内),输出整数商,忽略小数。

输入

共两行,第1行为一个数字字符串,即被除数,第2行为一个整数,即除数。

输出

输出整数商,忽略小数。

样例输入

20
5

样例输出

4

技术分享图片
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
string Multiply(string s,int x){  
    reverse(s.begin(),s.end());  
    int cmp=0;  
    for(int i=0;i<s.size();i++){  
        cmp=(s[i]-0)*x+cmp;  
        s[i]=(cmp%10+0);
        cmp/=10;  
    }  
    while(cmp){  
        s+=(cmp%10+0);  
        cmp/=10;  
    }  
    reverse(s.begin(),s.end());  
    return s;  
}
string Except(string s,int x){
    int cmp=0,ok=0;
    string ans="";
    for(int i=0;i<s.size();i++){
        cmp=(cmp*10+s[i]-0);
        if(cmp>=x){
            ok=1;
            ans+=(cmp/x+0);
            cmp%=x;
        }
        else if(ok==1)ans+=0;
    }
    return ans.empty()?"0":ans;
}
int main(int argc, char *argv[]) {
    string a;
    int b;
    cin>>a>>b;
    cout<<Except(a,b)<<endl;
}
View Code

 








以上是关于高精度高精度数除以低精度数I的主要内容,如果未能解决你的问题,请参考以下文章

高精度算法—减法篇

高精度计算 除法 高精除以低精

大整数四则运算(vector)

[贪心][高精度][NOIP]国王游戏

bzoj1005[HNOI2008]明明的烦恼 Prufer序列+高精度

[bzoj1005][HNOI2008][明明的烦恼] (高精度+prufer定理)