1017 A除以B (20 分)
高精除低精板子题。
const int N=1010;
struct bignum
{
int m[N];
int len;
bignum()
{
memset(m,0,sizeof m);
len=0;
}
};
int r;
bignum Div(bignum a,int b)
{
bignum c;
c.len=a.len;
for(int i=c.len-1;i>=0;i--)
{
r=r*10+a.m[i];
c.m[i]=r/b;
r%=b;
}
while(c.len > 1 && !c.m[c.len-1]) c.len--;
return c;
}
int main()
{
string s;
int b;
cin>>s>>b;
bignum a;
a.len=s.size();
for(int i=0;i<s.size();i++)
a.m[i]=s[s.size()-1-i]-'0';
bignum c=Div(a,b);
for(int i=c.len-1;i>=0;i--)
cout<<c.m[i];
cout<<' '<<r<<endl;
//system("pause");
return 0;
}