问题 K: 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
1 #include<stdio.h> 2 #include<string.h> 3 char a[100000]; 4 int c[100000],d[100000],s[100000]; 5 int main() { 6 char ni; 7 int b; 8 while(scanf("%s %c %d",a,&ni,&b)!=-1) { 9 memset(c,0,sizeof(c)); 10 memset(s,0,sizeof(s)); 11 int l,k; 12 l=strlen(a); 13 int p=0; 14 for(int i=0; i<l; i++) { 15 c[p++]=a[i]-48; 16 } 17 if(ni=='/') { 18 if(b==0) 19 printf("0\n"); 20 else { 21 if(a=="0") 22 printf("0\n"); 23 else { 24 // if(b==0) 25 // printf("0\n"); 26 // else { 27 int j=0; 28 int y=0; 29 int haha=0; 30 for(int i=0; i<l; i++) { 31 int sum=c[i]+y*10; 32 int x=sum/b; 33 y=sum%b; 34 if(x||y) { 35 haha=-1; 36 s[j++]=x; 37 } 38 } 39 if(haha==0) { 40 printf("0\n"); 41 } 42 else { 43 for(int i=0; i<j; i++) { 44 printf("%d",s[i]); 45 } 46 printf("\n"); 47 } 48 // } 49 } 50 } 51 } 52 if(ni=='%') { 53 if(b==0) 54 printf("%s\n",a); 55 else { 56 int sum=0; 57 for(int i=0; i<l; i++) { 58 sum=sum*10+(c[i]); 59 sum=sum%b; 60 } 61 printf("%d\n",sum); 62 } 63 } 64 } 65 return 0; 66 }