A/B Problem
时间限制:
1000 ms | 内存限制:
65535 KB
难度:
3
-
描述
-
做了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); } } } }