Overflow
Time Limit:3000MS Memory Limit:0KB 64bit IO Format:%lld & %llu
Submit Status
Description
Overflow
Write a program that reads an expression consisting of two non-negative integer and an operator. Determine if either integer or the result of the expression is too large to be represented as a ``normal'' signed integer (type integer if you are working Pascal, type int
Input
An unspecified number of lines. Each line will contain an integer, one of the two operators + or *, and another integer.
Output
For each line of input, print the input followed by 0-3 lines containing as many of these three messages as are appropriate: ``first number too big'', ``second number too big'', ``result too big''.
Sample Input
300 + 3 9999999999999999999999 + 11
Sample Output
300 + 3 9999999999999999999999 + 11 first number too big result too big
#include<iostream>
#include<algorithm>
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
using namespace std;
int main()
{
char aa[1000],bb[1100];
double a,b,c;
char ch;
while(scanf("%s%*c%c%s",&aa,&ch,&bb)!=EOF)
{
int flag1 = 0;
int flag2 = 0;
int flag3 = 0;
a = atof(aa);
b = atof(bb);
if(a>2147483647)
{
flag1 = 1;
}
if(b>2147483647)
{
flag2 = 1;
}
if(ch == '+')
{
c = a + b;
if(c>2147483647)
{
flag3 = 1;
}
}
else if(ch == '*')
{
c = a * b;
if(c > 2147483647)
{
flag3 = 1;
}
}
cout << aa << " " << ch << " " << bb << endl;
if(flag1 == 1)
{
printf("first number too big\n");
}
if(flag2 == 1)
{
printf("second number too big\n");
}
if(flag3 == 1)
{
printf("result too big\n");
}
}
return 0;
}