码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2018-07-22 11:13:39      阅读:147      评论:0      收藏:0      [点我收藏+]

标签:argc   class   submit   alt   状态   content   cin   splay   begin   

问题 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

标签:argc   class   submit   alt   状态   content   cin   splay   begin   

原文地址:https://www.cnblogs.com/Rhythm-/p/9348895.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!