伪大数A/B问题

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


伪大数A/B,因B为INT型,所以比较容易做。(自己第一次做时,一直想把A分成A/(B的长度)次,后来才知道可以一个数一个数除)。



01. #include<stdio.h>
02. #include<string.h>
03. int main()
04. {
05. char a1[500],c1[5];
06. int d;
07. while(scanf("%s%s%d",a1,c1,&d)!=EOF)
08. {
09. long long s=0,flag=0;
10. int f=0,i,k=0,b[500],j=0;
11. if(c1[0]=='/')   f=1;
12. for(i=0; a1[i]!='\0'; i++)
13. {
14. s=s*10+a1[i]-'0';
15. b[j++]=s/d;
16. if(s/d>0)   flag=1;
17. s=s%d;
18. }
19. if(f)
20. {
21. for(i=0; i<j; i++)
22. {
23. if(k)
24. printf("%d",b[i]);
25. if(b[i]&&!k)
26. k=1,printf("%d",b[i]);
27. }
28. if(!flag)
29. printf("0");
30. }
31. else
32. printf("%d",s);
33. printf("\n");
34. }
35. }

这样做了之后,真大数A/B,也能做了。O(∩_∩)O哈哈~

你可能感兴趣的:(大数)