Yandry.

Moderator: Board moderators
Code: Select all
300 + 3
9999999999999999999999 + 11
2147483647 * 1
2147483647 + 1
0 * 1000000000000
2147483648 * 0
2000000000 + 2000000000
1000000 * 1000000
2147483648 * -1
-1 * 2147483648
2147483647 * 2147483647
32768 * -65536
0123232323232 * 2222222222222
000012 * 2222222222222
10000000000*10000
1002*10000
Code: Select all
300 + 3
9999999999999999999999 + 11
first number too big
result too big
2147483647 * 1
2147483647 + 1
result too big
0 * 1000000000000
second number too big
2147483648 * 0
first number too big
2000000000 + 2000000000
result too big
1000000 * 1000000
result too big
2147483648 * -1
first number too big
-1 * 2147483648
second number too big
2147483647 * 2147483647
result too big
32768 * -65536
0123232323232 * 2222222222222
first number too big
second number too big
result too big
000012 * 2222222222222
second number too big
result too big
10000000000*10000
first number too big
result too big
1002*10000
Code: Select all
000000000000000000000000000000000000000000000000000000000000000000000009999999999999999999999999999999999999999999999999999999999 + 1
Code: Select all
while(gets(line))
{
if(!strlen(line)){printf("\n");continue;}
printf("%s\n",line);
sscanf(line,"%s %c %s",&a,&sign,&b);
...
Code: Select all
564651354687965135846587984354861384 + 332132132132132154684768465413654654684
Code: Select all
999999999999999999999999999999 * 999999999999999999999999999999
4294967296 * 4294967296
4294967295 * 4294967295
999999999999999999999999999999 * 0
Code: Select all
999999999999999999999999999999 * 999999999999999999999999999999
first number too big
second number too big
result too big
4294967296 * 4294967296
first number too big
second number too big
result too big
4294967295 * 4294967295
first number too big
second number too big
result too big
999999999999999999999999999999 * 0
first number too big
Code: Select all
#include<stdio.h>
#include<stdlib.h>
#include<iostream>
#include<string.h>
#include<sstream>
#include<ctype.h>
#include<math.h>
using namespace std;
long long max = 2147483647;
char str[100000000];
int main()
{
string s;
char c;
while(gets(str)){
s=str;
long long a=0,b=0,j,len,aflag=0,bflag=0,res,i,n,f;
f=0;
j=0;
len=s.length();
for(i=len;i>=0;i--){
if(isdigit(s[i])>0 && f==1){
a+=(s[i]-'0')*pow(10,j);
aflag=1;
j++;
}
else if(isdigit(s[i])>0 && f==0){
b+=(s[i]-'0')*pow(10,j);
j++;
bflag=1;
}
else if(s[i]=='-'){
if(bflag==1 && aflag==0){
b=b*(-1);
}
else if(bflag==1 && aflag==1){
a=a*(-1);
}
}
else if(isspace(s[i])>0 && j!=0){
j=0;
f=1;
}
else if(s[i]=='+'){
c='+';
j=0;
f=1;
}
else if(s[i]=='*'){
c='*';
j=0;
f=1;
}
}
//cout<<a<<endl<<b<<endl;
cout<<s<<endl;
if(c=='+')res=a+b;
else if(c=='*')res=a*b;
if(a>max)printf("first number too big\n");
if(b>max)printf("second number too big\n");
if(res>max)printf("result too big\n");
else continue;
}
return 0;
}