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
上传者
之前一直是wrong answer,现在才知道少考虑一点,“被除数”比“除数”小的时候,例如是12 / 13时,不会输出任何数,但是应该是输出 0 的,所以要控制一下……
#include<iostream> #include<algorithm> #include<string> #include<string.h> using namespace std; int main() { char a[1000],c; int b,lena,i,sum,t,d[1000]; while(cin>>a>>c>>b) { int yushu=0; int flag=0; int k=0; int count=0; lena=strlen(a);//110 / 100 if(c=='/') { for(i=0;i<lena;i++) { sum=(a[i]-'0')+yushu*10; // 127/3 t=sum/b; //0 yushu=sum%b;//1 if(t!=0 ||t==0 && flag==1) { cout<<t; } if(t) flag=1; if(!t) count++; if(count==lena) cout<<"0"; } cout<<endl; } else if(c=='%') { for(i=0;i<lena;i++) { sum=(a[i]-'0')+yushu*10; // 127/3 t=sum/b; //0 yushu=sum%b;//1 } cout<<yushu<<endl; } } return 0; }