http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=20386
高精度除以低精度,可以直接模拟除法,取模也是一样。注意被除数为0的情况,这题数据不是很大。
#include<cstdio>
#include<cstring>
char s[1000],num[1000];
int main()
{
char c;
int n,i,j;
while(~scanf("%s %c %d",s,&c,&n))
{
memset(num,0,sizeof(num));
long long ans=0,m=0,l=strlen(s);
if(c=='/')
{
if(s[0]=='0') {printf("0\n");continue;}
for(i=0;i<l;i++)
{
ans=ans*10+s[i]-'0';
if(ans>=n)
{
num[m++]=ans/n;
ans=ans%n;
}
else
{
num[m++]=0;
}
}
i=0;
while(!num[i]) i++;
for(j=i;j<m;j++) printf("%d",num[j]);
printf("\n");
}
else
{
for(i=0;i<l;i++)
{
ans=(ans*10+s[i]-'0')%n;
}
printf("%lld\n",ans);
}
}
return 0;
}