The problem seemed to be very much easy to me. But i can't understand why i am getting wrong answers. Can any body help me with some typical input.Here is my code:
#include<stdio.h>
#include<math.h>
#include<string.h>
main()
{
int i,r,j,n;
double x,v;
char a[10],b[10];
while(1)
{
n=0;
r=scanf("%s",a);
if(r==EOF) break;
for(i=0;i<strlen(a);i++)
if(a[i]>='1' && a[i]<='9')
break;
n=0;
for(j=i;j<strlen(a);j++)
b[n++]=a[j];
v=0;
for(i=0;i<n;i++)
v=v+(b[i]-'0')*pow(10,n-i-1);
if(v<8) printf("Underflow!\n");
else if(v>13) printf("Overflow!\n");
else
{
x=1;
for(i=2;i<=v;i++)
x=x*i;
printf("%.0lf\n",x);
}
}
return 0;
}
