高精度高精度数除以低精度数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; }
以上是关于高精度高精度数除以低精度数I的主要内容,如果未能解决你的问题,请参考以下文章