A/B Problem(大数)
描述
做了A+B Problem,A/B Problem不是什么问题了吧!
输入
每组测试样例一行,首先一个号码A,中间一个或多个空格,然后一个符号( / 或者 % ),然后又是空格,后面又是一个号码B,A可能会很长,B是一个int范围的数。
输出
输出结果。
样例输入
110 / 100
99 % 10
2147483647 / 2147483647
2147483646 % 2147483647
样例输出
1
9
1
2147483646
#include<stdio.h>
#include<string.h>
char a[100000];
int c[100000],d[100000],s[100000];
int main()
{
char ni;
int b;
while(scanf("%s %c %d",a,&ni,&b)!=-1)
{
memset(c,0,sizeof(c));
memset(s,0,sizeof(s));
int l,k;
l=strlen(a);
int p=0;
for(int i=0; i<l; i++)
{
c[p++]=a[i]-48;
}
if(ni=='/')
{
if(b==0)
printf("0\n");
else
{
if(a=="0")
printf("0\n");
else
{
// if(b==0)
// printf("0\n");
// else
// {
int j=0;
int y=0;
int haha=0;
for(int i=0; i<l; i++)
{
int sum=c[i]+y*10;
int x=sum/b;
y=sum%b;
if(x||j)
{
haha=-1;
s[j++]=x;
}
}
if(haha==0)
{
printf("0\n");
}
else
{
for(int i=0; i<j; i++)
{
printf("%d",s[i]);
}
printf("\n");
}
// }
}
}
}
if(ni=='%')
{
if(b==0)
printf("%s\n",a);
else
{
int sum=0;
for(int i=0; i<l; i++)
{
sum=sum*10+(c[i]);
sum=sum%b;
}
printf("%d\n",sum);
}
}
}
}