题目链接:UVA 10494
大数除法、模除的模板题,直接上代码。
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
const int N=1024;
char s[N],ans[N];
int main()
{
int len;
long long a,n;
char op;
while(~scanf("%s %c %lld",s,&op,&n))
{
a=len=0;
for(int i=0;s[i];i++) //模拟除法运算
{
a=a*10+s[i]-'0';
ans[len++]=a/n+'0';
a%=n;
}
ans[len]='\0';
if(op=='%') //模除情况,a即为余数
printf("%lld\n",a);
else //除法情况
{
int i=0;
while(ans[i]=='0') //去掉商中的前导0
i++;
if(i>=len) //对商为0的情况特判
i--;
for(;i<len;i++)
printf("%c",ans[i]);
printf("\n");
}
}
return 0;
}